<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::RangeImage类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1_range_image.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pub-static-methods">静态 Public 成员函数</a> &#124;
<a href="#pub-static-attribs">静态 Public 属性</a> &#124;
<a href="#pro-static-methods">静态 Protected 成员函数</a> &#124;
<a href="#pro-attribs">Protected 属性</a> &#124;
<a href="#pro-static-attribs">静态 Protected 属性</a> &#124;
<a href="classpcl_1_1_range_image-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::RangeImage类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p><a class="el" href="classpcl_1_1_range_image.html" title="RangeImage is derived from pcl/PointCloud and provides functionalities with focus on situations where...">RangeImage</a> is derived from pcl/PointCloud and provides functionalities with focus on situations where a 3D scene was captured from a specific view point.  
 <a href="classpcl_1_1_range_image.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="range__image_8h_source.html">range_image.h</a>&gt;</code></p>
<div class="dynheader">
类 pcl::RangeImage 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classpcl_1_1_range_image.png" usemap="#pcl::RangeImage_map" alt=""/>
  <map id="pcl::RangeImage_map" name="pcl::RangeImage_map">
<area href="classpcl_1_1_point_cloud.html" alt="pcl::PointCloud&lt; PointWithRange &gt;" shape="rect" coords="109,0,317,24"/>
<area href="classpcl_1_1_range_image_planar.html" title="RangeImagePlanar is derived from the original range image and differs from it because it&#39;s not a sphe..." alt="pcl::RangeImagePlanar" shape="rect" coords="0,112,208,136"/>
<area href="classpcl_1_1_range_image_spherical.html" title="RangeImageSpherical is derived from the original range image and uses a slightly different spherical ..." alt="pcl::RangeImageSpherical" shape="rect" coords="218,112,426,136"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:a8b5785b0499f0a70d5c87fceba55992f"><td class="memItemLeft" align="right" valign="top"><a id="a8b5785b0499f0a70d5c87fceba55992f"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>CoordinateFrame</b> { <b>CAMERA_FRAME</b> = 0
, <b>LASER_FRAME</b> = 1
 }</td></tr>
<tr class="separator:a8b5785b0499f0a70d5c87fceba55992f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0fcaf5bf99ac1b2dbde4e47ab189b42"><td class="memItemLeft" align="right" valign="top"><a id="af0fcaf5bf99ac1b2dbde4e47ab189b42"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>BaseClass</b></td></tr>
<tr class="separator:af0fcaf5bf99ac1b2dbde4e47ab189b42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaea2dbf0f2fa5e32bd59234b6d25c0c9"><td class="memItemLeft" align="right" valign="top"><a id="aaea2dbf0f2fa5e32bd59234b6d25c0c9"></a>
typedef std::vector&lt; Eigen::Vector3f, Eigen::aligned_allocator&lt; Eigen::Vector3f &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>VectorOfEigenVector3f</b></td></tr>
<tr class="separator:aaea2dbf0f2fa5e32bd59234b6d25c0c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e40712f69557c1fa4219e2c9f744d9b"><td class="memItemLeft" align="right" valign="top"><a id="a8e40712f69557c1fa4219e2c9f744d9b"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:a8e40712f69557c1fa4219e2c9f744d9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4869553a830b95438de08fae4634cc74"><td class="memItemLeft" align="right" valign="top"><a id="a4869553a830b95438de08fae4634cc74"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:a4869553a830b95438de08fae4634cc74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classpcl_1_1_point_cloud"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classpcl_1_1_point_cloud')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud&lt; PointWithRange &gt;</a></td></tr>
<tr class="memitem:a6a2e5a4dd3d3bfb7a60bd54071878809 inherit pub_types_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a6a2e5a4dd3d3bfb7a60bd54071878809"></a>
typedef <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a>&#160;</td><td class="memItemRight" valign="bottom"><b>PointType</b></td></tr>
<tr class="separator:a6a2e5a4dd3d3bfb7a60bd54071878809 inherit pub_types_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a649cf215d01262238ed380da757fb295 inherit pub_types_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a649cf215d01262238ed380da757fb295"></a>
typedef std::vector&lt; <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a>, Eigen::aligned_allocator&lt; <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>VectorType</b></td></tr>
<tr class="separator:a649cf215d01262238ed380da757fb295 inherit pub_types_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4657f95425ac2785a5b86e3c3d7ff212 inherit pub_types_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a4657f95425ac2785a5b86e3c3d7ff212"></a>
typedef std::vector&lt; <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &gt;, Eigen::aligned_allocator&lt; <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &gt; &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>CloudVectorType</b></td></tr>
<tr class="separator:a4657f95425ac2785a5b86e3c3d7ff212 inherit pub_types_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86473dec40d705190c6b2c2f795b9f15 inherit pub_types_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a86473dec40d705190c6b2c2f795b9f15"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:a86473dec40d705190c6b2c2f795b9f15 inherit pub_types_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad63ba0b541909de6e4a01ea59c7a156d inherit pub_types_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="ad63ba0b541909de6e4a01ea59c7a156d"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:ad63ba0b541909de6e4a01ea59c7a156d inherit pub_types_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae89f3bb4a4fb588683fd9d14b7c5969 inherit pub_types_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="aae89f3bb4a4fb588683fd9d14b7c5969"></a>
typedef <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a>&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
<tr class="separator:aae89f3bb4a4fb588683fd9d14b7c5969 inherit pub_types_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f653b9d0fe056e7d5ead8f63e0e5f95 inherit pub_types_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a8f653b9d0fe056e7d5ead8f63e0e5f95"></a>
typedef <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>reference</b></td></tr>
<tr class="separator:a8f653b9d0fe056e7d5ead8f63e0e5f95 inherit pub_types_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c114a3688df1d4390055d33abe3a4db inherit pub_types_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a3c114a3688df1d4390055d33abe3a4db"></a>
typedef const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>const_reference</b></td></tr>
<tr class="separator:a3c114a3688df1d4390055d33abe3a4db inherit pub_types_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7318020f0ad9d4d4cc7c5c4f4011383 inherit pub_types_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="ad7318020f0ad9d4d4cc7c5c4f4011383"></a>
typedef VectorType::difference_type&#160;</td><td class="memItemRight" valign="bottom"><b>difference_type</b></td></tr>
<tr class="separator:ad7318020f0ad9d4d4cc7c5c4f4011383 inherit pub_types_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0ecadb7be18f29a15f2a70325dd1e9f inherit pub_types_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="ac0ecadb7be18f29a15f2a70325dd1e9f"></a>
typedef VectorType::size_type&#160;</td><td class="memItemRight" valign="bottom"><b>size_type</b></td></tr>
<tr class="separator:ac0ecadb7be18f29a15f2a70325dd1e9f inherit pub_types_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd3990f8f7570cebe51aed11d9885e84 inherit pub_types_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="acd3990f8f7570cebe51aed11d9885e84"></a>
typedef VectorType::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
<tr class="separator:acd3990f8f7570cebe51aed11d9885e84 inherit pub_types_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af81b11aab71c852e20626277f817d04d inherit pub_types_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="af81b11aab71c852e20626277f817d04d"></a>
typedef VectorType::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
<tr class="separator:af81b11aab71c852e20626277f817d04d inherit pub_types_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:af18b2d3410fb7799ad4de375b51df035"><td class="memItemLeft" align="right" valign="top">PCL_EXPORTS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#af18b2d3410fb7799ad4de375b51df035">RangeImage</a> ()</td></tr>
<tr class="separator:af18b2d3410fb7799ad4de375b51df035"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a274fcd95e5f7c8da5f4f5ecf151bad40"><td class="memItemLeft" align="right" valign="top">virtual PCL_EXPORTS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a274fcd95e5f7c8da5f4f5ecf151bad40">~RangeImage</a> ()</td></tr>
<tr class="separator:a274fcd95e5f7c8da5f4f5ecf151bad40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f898747aa6a52e484d65babc2600a23"><td class="memItemLeft" align="right" valign="top"><a id="a7f898747aa6a52e484d65babc2600a23"></a>
Ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a7f898747aa6a52e484d65babc2600a23">makeShared</a> ()</td></tr>
<tr class="memdesc:a7f898747aa6a52e484d65babc2600a23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a boost shared pointer of a copy of this <br /></td></tr>
<tr class="separator:a7f898747aa6a52e484d65babc2600a23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd539d95dd7bbbd1d67db12e9be275b0"><td class="memItemLeft" align="right" valign="top"><a id="acd539d95dd7bbbd1d67db12e9be275b0"></a>
PCL_EXPORTS void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#acd539d95dd7bbbd1d67db12e9be275b0">reset</a> ()</td></tr>
<tr class="memdesc:acd539d95dd7bbbd1d67db12e9be275b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset all values to an empty range image <br /></td></tr>
<tr class="separator:acd539d95dd7bbbd1d67db12e9be275b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82f6a143de2d73a0ad9fea6c527a2efb"><td class="memTemplParams" colspan="2">template&lt;typename PointCloudType &gt; </td></tr>
<tr class="memitem:a82f6a143de2d73a0ad9fea6c527a2efb"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a82f6a143de2d73a0ad9fea6c527a2efb">createFromPointCloud</a> (const PointCloudType &amp;point_cloud, float angular_resolution=pcl::deg2rad(0.5f), float max_angle_width=pcl::deg2rad(360.0f), float max_angle_height=pcl::deg2rad(180.0f), const Eigen::Affine3f &amp;sensor_pose=Eigen::Affine3f::Identity(), CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f, float min_range=0.0f, int border_size=0)</td></tr>
<tr class="memdesc:a82f6a143de2d73a0ad9fea6c527a2efb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the depth image from a point cloud  <a href="classpcl_1_1_range_image.html#a82f6a143de2d73a0ad9fea6c527a2efb">更多...</a><br /></td></tr>
<tr class="separator:a82f6a143de2d73a0ad9fea6c527a2efb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3a8a2def6dde7446b9fc456f7992aa9"><td class="memTemplParams" colspan="2">template&lt;typename PointCloudType &gt; </td></tr>
<tr class="memitem:ae3a8a2def6dde7446b9fc456f7992aa9"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#ae3a8a2def6dde7446b9fc456f7992aa9">createFromPointCloud</a> (const PointCloudType &amp;point_cloud, float angular_resolution_x=pcl::deg2rad(0.5f), float angular_resolution_y=pcl::deg2rad(0.5f), float max_angle_width=pcl::deg2rad(360.0f), float max_angle_height=pcl::deg2rad(180.0f), const Eigen::Affine3f &amp;sensor_pose=Eigen::Affine3f::Identity(), CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f, float min_range=0.0f, int border_size=0)</td></tr>
<tr class="memdesc:ae3a8a2def6dde7446b9fc456f7992aa9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the depth image from a point cloud  <a href="classpcl_1_1_range_image.html#ae3a8a2def6dde7446b9fc456f7992aa9">更多...</a><br /></td></tr>
<tr class="separator:ae3a8a2def6dde7446b9fc456f7992aa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbb553405d9b1df2b10b08c98c052250"><td class="memTemplParams" colspan="2">template&lt;typename PointCloudType &gt; </td></tr>
<tr class="memitem:afbb553405d9b1df2b10b08c98c052250"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#afbb553405d9b1df2b10b08c98c052250">createFromPointCloudWithKnownSize</a> (const PointCloudType &amp;point_cloud, float angular_resolution, const Eigen::Vector3f &amp;point_cloud_center, float point_cloud_radius, const Eigen::Affine3f &amp;sensor_pose=Eigen::Affine3f::Identity(), CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f, float min_range=0.0f, int border_size=0)</td></tr>
<tr class="memdesc:afbb553405d9b1df2b10b08c98c052250"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the depth image from a point cloud, getting a hint about the size of the scene for faster calculation.  <a href="classpcl_1_1_range_image.html#afbb553405d9b1df2b10b08c98c052250">更多...</a><br /></td></tr>
<tr class="separator:afbb553405d9b1df2b10b08c98c052250"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac52b84843090cf756a37c596b5e772d2"><td class="memTemplParams" colspan="2">template&lt;typename PointCloudType &gt; </td></tr>
<tr class="memitem:ac52b84843090cf756a37c596b5e772d2"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#ac52b84843090cf756a37c596b5e772d2">createFromPointCloudWithKnownSize</a> (const PointCloudType &amp;point_cloud, float angular_resolution_x, float angular_resolution_y, const Eigen::Vector3f &amp;point_cloud_center, float point_cloud_radius, const Eigen::Affine3f &amp;sensor_pose=Eigen::Affine3f::Identity(), CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f, float min_range=0.0f, int border_size=0)</td></tr>
<tr class="memdesc:ac52b84843090cf756a37c596b5e772d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the depth image from a point cloud, getting a hint about the size of the scene for faster calculation.  <a href="classpcl_1_1_range_image.html#ac52b84843090cf756a37c596b5e772d2">更多...</a><br /></td></tr>
<tr class="separator:ac52b84843090cf756a37c596b5e772d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91cb7406e0e57923a7f5d533ea578c0f"><td class="memTemplParams" colspan="2">template&lt;typename PointCloudTypeWithViewpoints &gt; </td></tr>
<tr class="memitem:a91cb7406e0e57923a7f5d533ea578c0f"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a91cb7406e0e57923a7f5d533ea578c0f">createFromPointCloudWithViewpoints</a> (const PointCloudTypeWithViewpoints &amp;point_cloud, float angular_resolution, float max_angle_width, float max_angle_height, CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f, float min_range=0.0f, int border_size=0)</td></tr>
<tr class="memdesc:a91cb7406e0e57923a7f5d533ea578c0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the depth image from a point cloud, using the average viewpoint of the points (vp_x,vp_y,vp_z in the point type) in the point cloud as sensor pose (assuming a rotation of (0,0,0)).  <a href="classpcl_1_1_range_image.html#a91cb7406e0e57923a7f5d533ea578c0f">更多...</a><br /></td></tr>
<tr class="separator:a91cb7406e0e57923a7f5d533ea578c0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66de72c9511e694d41bd7a48c043f541"><td class="memTemplParams" colspan="2">template&lt;typename PointCloudTypeWithViewpoints &gt; </td></tr>
<tr class="memitem:a66de72c9511e694d41bd7a48c043f541"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a66de72c9511e694d41bd7a48c043f541">createFromPointCloudWithViewpoints</a> (const PointCloudTypeWithViewpoints &amp;point_cloud, float angular_resolution_x, float angular_resolution_y, float max_angle_width, float max_angle_height, CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f, float min_range=0.0f, int border_size=0)</td></tr>
<tr class="memdesc:a66de72c9511e694d41bd7a48c043f541"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the depth image from a point cloud, using the average viewpoint of the points (vp_x,vp_y,vp_z in the point type) in the point cloud as sensor pose (assuming a rotation of (0,0,0)).  <a href="classpcl_1_1_range_image.html#a66de72c9511e694d41bd7a48c043f541">更多...</a><br /></td></tr>
<tr class="separator:a66de72c9511e694d41bd7a48c043f541"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46cb318d3d6f1cf6aace8d2ed10ed7fa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a46cb318d3d6f1cf6aace8d2ed10ed7fa">createEmpty</a> (float angular_resolution, const Eigen::Affine3f &amp;sensor_pose=Eigen::Affine3f::Identity(), RangeImage::CoordinateFrame coordinate_frame=CAMERA_FRAME, float angle_width=pcl::deg2rad(360.0f), float angle_height=pcl::deg2rad(180.0f))</td></tr>
<tr class="memdesc:a46cb318d3d6f1cf6aace8d2ed10ed7fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty depth image (filled with unobserved points)  <a href="classpcl_1_1_range_image.html#a46cb318d3d6f1cf6aace8d2ed10ed7fa">更多...</a><br /></td></tr>
<tr class="separator:a46cb318d3d6f1cf6aace8d2ed10ed7fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa9ecf76f97e99ede5b71bb7da6c1715"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#afa9ecf76f97e99ede5b71bb7da6c1715">createEmpty</a> (float angular_resolution_x, float angular_resolution_y, const Eigen::Affine3f &amp;sensor_pose=Eigen::Affine3f::Identity(), RangeImage::CoordinateFrame coordinate_frame=CAMERA_FRAME, float angle_width=pcl::deg2rad(360.0f), float angle_height=pcl::deg2rad(180.0f))</td></tr>
<tr class="memdesc:afa9ecf76f97e99ede5b71bb7da6c1715"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty depth image (filled with unobserved points)  <a href="classpcl_1_1_range_image.html#afa9ecf76f97e99ede5b71bb7da6c1715">更多...</a><br /></td></tr>
<tr class="separator:afa9ecf76f97e99ede5b71bb7da6c1715"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56655a55b4c83c7ce301ca0f020759b4"><td class="memTemplParams" colspan="2">template&lt;typename PointCloudType &gt; </td></tr>
<tr class="memitem:a56655a55b4c83c7ce301ca0f020759b4"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a56655a55b4c83c7ce301ca0f020759b4">doZBuffer</a> (const PointCloudType &amp;point_cloud, float noise_level, float min_range, int &amp;top, int &amp;right, int &amp;bottom, int &amp;left)</td></tr>
<tr class="memdesc:a56655a55b4c83c7ce301ca0f020759b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Integrate the given point cloud into the current range image using a z-buffer  <a href="classpcl_1_1_range_image.html#a56655a55b4c83c7ce301ca0f020759b4">更多...</a><br /></td></tr>
<tr class="separator:a56655a55b4c83c7ce301ca0f020759b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c3ceb66679ccc84587eef5c29a16386"><td class="memTemplParams" colspan="2"><a id="a6c3ceb66679ccc84587eef5c29a16386"></a>
template&lt;typename PointCloudType &gt; </td></tr>
<tr class="memitem:a6c3ceb66679ccc84587eef5c29a16386"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a6c3ceb66679ccc84587eef5c29a16386">integrateFarRanges</a> (const PointCloudType &amp;far_ranges)</td></tr>
<tr class="memdesc:a6c3ceb66679ccc84587eef5c29a16386"><td class="mdescLeft">&#160;</td><td class="mdescRight">Integrates the given far range measurements into the range image <br /></td></tr>
<tr class="separator:a6c3ceb66679ccc84587eef5c29a16386"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20f223d93080e9ce32122f90a265f7c4"><td class="memItemLeft" align="right" valign="top">PCL_EXPORTS void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a20f223d93080e9ce32122f90a265f7c4">cropImage</a> (int border_size=0, int top=-1, int right=-1, int bottom=-1, int left=-1)</td></tr>
<tr class="memdesc:a20f223d93080e9ce32122f90a265f7c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cut the range image to the minimal size so that it still contains all actual range readings.  <a href="classpcl_1_1_range_image.html#a20f223d93080e9ce32122f90a265f7c4">更多...</a><br /></td></tr>
<tr class="separator:a20f223d93080e9ce32122f90a265f7c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab124a58f66b1d9a5d0f433c8474ef2b4"><td class="memItemLeft" align="right" valign="top">PCL_EXPORTS float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#ab124a58f66b1d9a5d0f433c8474ef2b4">getRangesArray</a> () const</td></tr>
<tr class="memdesc:ab124a58f66b1d9a5d0f433c8474ef2b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all the range values in one float array of size width*height <br  />
  <a href="classpcl_1_1_range_image.html#ab124a58f66b1d9a5d0f433c8474ef2b4">更多...</a><br /></td></tr>
<tr class="separator:ab124a58f66b1d9a5d0f433c8474ef2b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac503c8e060a6f6b1cae1c1fa87fa6e33"><td class="memItemLeft" align="right" valign="top">const Eigen::Affine3f &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#ac503c8e060a6f6b1cae1c1fa87fa6e33">getTransformationToRangeImageSystem</a> () const</td></tr>
<tr class="separator:ac503c8e060a6f6b1cae1c1fa87fa6e33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0419b66dd9e76fbc6d568049abfad3c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#ab0419b66dd9e76fbc6d568049abfad3c">setTransformationToRangeImageSystem</a> (const Eigen::Affine3f &amp;to_range_image_system)</td></tr>
<tr class="separator:ab0419b66dd9e76fbc6d568049abfad3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdff6ffbb3bfec294637225b5fb82956"><td class="memItemLeft" align="right" valign="top">const Eigen::Affine3f &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#afdff6ffbb3bfec294637225b5fb82956">getTransformationToWorldSystem</a> () const</td></tr>
<tr class="separator:afdff6ffbb3bfec294637225b5fb82956"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fc3548b0b33e90cead2c1ecfce14c34"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a6fc3548b0b33e90cead2c1ecfce14c34">getAngularResolution</a> () const</td></tr>
<tr class="separator:a6fc3548b0b33e90cead2c1ecfce14c34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6522dbfac4997c15bd24b0b9b3e9d4dd"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a6522dbfac4997c15bd24b0b9b3e9d4dd">getAngularResolutionX</a> () const</td></tr>
<tr class="separator:a6522dbfac4997c15bd24b0b9b3e9d4dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4891c9812652efe513b9ff060490364"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#af4891c9812652efe513b9ff060490364">getAngularResolutionY</a> () const</td></tr>
<tr class="separator:af4891c9812652efe513b9ff060490364"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41c0b0f74510988357a56fdc48d18f93"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a41c0b0f74510988357a56fdc48d18f93">getAngularResolution</a> (float &amp;angular_resolution_x, float &amp;angular_resolution_y) const</td></tr>
<tr class="separator:a41c0b0f74510988357a56fdc48d18f93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2720450161caef9a2992b0ac943ab2b7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a2720450161caef9a2992b0ac943ab2b7">setAngularResolution</a> (float angular_resolution)</td></tr>
<tr class="memdesc:a2720450161caef9a2992b0ac943ab2b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the angular resolution of the range image  <a href="classpcl_1_1_range_image.html#a2720450161caef9a2992b0ac943ab2b7">更多...</a><br /></td></tr>
<tr class="separator:a2720450161caef9a2992b0ac943ab2b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74583440e4ef4b611b7d2b638c6da28e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a74583440e4ef4b611b7d2b638c6da28e">setAngularResolution</a> (float angular_resolution_x, float angular_resolution_y)</td></tr>
<tr class="memdesc:a74583440e4ef4b611b7d2b638c6da28e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the angular resolution of the range image  <a href="classpcl_1_1_range_image.html#a74583440e4ef4b611b7d2b638c6da28e">更多...</a><br /></td></tr>
<tr class="separator:a74583440e4ef4b611b7d2b638c6da28e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52164736793c99cc9fc48dedee615e45"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (int image_x, int image_y) const</td></tr>
<tr class="memdesc:a52164736793c99cc9fc48dedee615e45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the 3D point with range at the given image position  <a href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">更多...</a><br /></td></tr>
<tr class="separator:a52164736793c99cc9fc48dedee615e45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb229f49ccf885517e905373372b00be"><td class="memItemLeft" align="right" valign="top"><a id="adb229f49ccf885517e905373372b00be"></a>
<a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#adb229f49ccf885517e905373372b00be">getPoint</a> (int image_x, int image_y)</td></tr>
<tr class="memdesc:adb229f49ccf885517e905373372b00be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-const-version of getPoint <br /></td></tr>
<tr class="separator:adb229f49ccf885517e905373372b00be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0168934416e10ded1eb34d57123b8d37"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a0168934416e10ded1eb34d57123b8d37">getPoint</a> (float image_x, float image_y) const</td></tr>
<tr class="separator:a0168934416e10ded1eb34d57123b8d37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa403d6ee9c3d76a50b268204acab27ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#aa403d6ee9c3d76a50b268204acab27ff">getPoint</a> (float image_x, float image_y)</td></tr>
<tr class="separator:aa403d6ee9c3d76a50b268204acab27ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a587663a5b4123f4c423c9e38a9b36d41"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a587663a5b4123f4c423c9e38a9b36d41">getPointNoCheck</a> (int image_x, int image_y) const</td></tr>
<tr class="memdesc:a587663a5b4123f4c423c9e38a9b36d41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the 3D point with range at the given image position. This methd performs no error checking to make sure the specified image position is inside of the image!  <a href="classpcl_1_1_range_image.html#a587663a5b4123f4c423c9e38a9b36d41">更多...</a><br /></td></tr>
<tr class="separator:a587663a5b4123f4c423c9e38a9b36d41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45bfd00007940d0043b8f1df43663d07"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a45bfd00007940d0043b8f1df43663d07">getPointNoCheck</a> (int image_x, int image_y)</td></tr>
<tr class="separator:a45bfd00007940d0043b8f1df43663d07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35a8dbb8cc328029a928b3cff4225d5b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a35a8dbb8cc328029a928b3cff4225d5b">getPoint</a> (int image_x, int image_y, Eigen::Vector3f &amp;point) const</td></tr>
<tr class="separator:a35a8dbb8cc328029a928b3cff4225d5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7e520479cc8f66e5ddd7f594649b25f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#aa7e520479cc8f66e5ddd7f594649b25f">getPoint</a> (int index, Eigen::Vector3f &amp;point) const</td></tr>
<tr class="separator:aa7e520479cc8f66e5ddd7f594649b25f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63716da3dad788cd23b64e9dc67b1791"><td class="memItemLeft" align="right" valign="top">const Eigen::Map&lt; const Eigen::Vector3f &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a63716da3dad788cd23b64e9dc67b1791">getEigenVector3f</a> (int x, int y) const</td></tr>
<tr class="separator:a63716da3dad788cd23b64e9dc67b1791"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab3ee4df50d138b9f9b4ba34306c1071"><td class="memItemLeft" align="right" valign="top">const Eigen::Map&lt; const Eigen::Vector3f &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#aab3ee4df50d138b9f9b4ba34306c1071">getEigenVector3f</a> (int index) const</td></tr>
<tr class="separator:aab3ee4df50d138b9f9b4ba34306c1071"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a467a03da34e4ffd323ae0f080ac85570"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a467a03da34e4ffd323ae0f080ac85570">getPoint</a> (int index) const</td></tr>
<tr class="separator:a467a03da34e4ffd323ae0f080ac85570"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1acc16b4b5fb7071175bada62a5b75d0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a1acc16b4b5fb7071175bada62a5b75d0">calculate3DPoint</a> (float image_x, float image_y, float range, <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;point) const</td></tr>
<tr class="separator:a1acc16b4b5fb7071175bada62a5b75d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f969bd0149b7848f0f26b44bb88035c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a0f969bd0149b7848f0f26b44bb88035c">calculate3DPoint</a> (float image_x, float image_y, <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;point) const</td></tr>
<tr class="separator:a0f969bd0149b7848f0f26b44bb88035c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9e97e7487ac21a77075b5f8b64ca205"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#aa9e97e7487ac21a77075b5f8b64ca205">calculate3DPoint</a> (float image_x, float image_y, float range, Eigen::Vector3f &amp;point) const</td></tr>
<tr class="separator:aa9e97e7487ac21a77075b5f8b64ca205"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbb77866cf4ee5d2a619f4f8cc62cc9b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#abbb77866cf4ee5d2a619f4f8cc62cc9b">calculate3DPoint</a> (float image_x, float image_y, Eigen::Vector3f &amp;point) const</td></tr>
<tr class="separator:abbb77866cf4ee5d2a619f4f8cc62cc9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08d6ccfef80c3788102327df618a3fbf"><td class="memItemLeft" align="right" valign="top">PCL_EXPORTS void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a08d6ccfef80c3788102327df618a3fbf">recalculate3DPointPositions</a> ()</td></tr>
<tr class="separator:a08d6ccfef80c3788102327df618a3fbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a53bfc9f4a3365ee8e62513ae37eb5c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a7a53bfc9f4a3365ee8e62513ae37eb5c">getImagePoint</a> (const Eigen::Vector3f &amp;point, float &amp;image_x, float &amp;image_y, float &amp;range) const</td></tr>
<tr class="separator:a7a53bfc9f4a3365ee8e62513ae37eb5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9295b795c8f52a90eb3af983612fea8a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a9295b795c8f52a90eb3af983612fea8a">getImagePoint</a> (const Eigen::Vector3f &amp;point, int &amp;image_x, int &amp;image_y, float &amp;range) const</td></tr>
<tr class="separator:a9295b795c8f52a90eb3af983612fea8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b9b678a491ddefc1109494157e0aa83"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a8b9b678a491ddefc1109494157e0aa83">getImagePoint</a> (const Eigen::Vector3f &amp;point, float &amp;image_x, float &amp;image_y) const</td></tr>
<tr class="separator:a8b9b678a491ddefc1109494157e0aa83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac7ef90b9c78876a492fd16701d6578e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#aac7ef90b9c78876a492fd16701d6578e">getImagePoint</a> (const Eigen::Vector3f &amp;point, int &amp;image_x, int &amp;image_y) const</td></tr>
<tr class="separator:aac7ef90b9c78876a492fd16701d6578e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09c81c4b4ffd68fc5742167d15f6af87"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a09c81c4b4ffd68fc5742167d15f6af87">getImagePoint</a> (float x, float y, float z, float &amp;image_x, float &amp;image_y, float &amp;range) const</td></tr>
<tr class="separator:a09c81c4b4ffd68fc5742167d15f6af87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8123412373a87d5030ee5f8a9b3ba3e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a8123412373a87d5030ee5f8a9b3ba3e4">getImagePoint</a> (float x, float y, float z, float &amp;image_x, float &amp;image_y) const</td></tr>
<tr class="separator:a8123412373a87d5030ee5f8a9b3ba3e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ba0bfce9adcf8161feec7c59f75082c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a2ba0bfce9adcf8161feec7c59f75082c">getImagePoint</a> (float x, float y, float z, int &amp;image_x, int &amp;image_y) const</td></tr>
<tr class="separator:a2ba0bfce9adcf8161feec7c59f75082c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e63aa0e7dc143f4a4a15611edcede70"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a3e63aa0e7dc143f4a4a15611edcede70">checkPoint</a> (const Eigen::Vector3f &amp;point, <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;point_in_image) const</td></tr>
<tr class="separator:a3e63aa0e7dc143f4a4a15611edcede70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea43fc18a9695437879d4b3b3860a9ae"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#aea43fc18a9695437879d4b3b3860a9ae">getRangeDifference</a> (const Eigen::Vector3f &amp;point) const</td></tr>
<tr class="separator:aea43fc18a9695437879d4b3b3860a9ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfd931443541e194f1c53d5f7b1c43e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#adfd931443541e194f1c53d5f7b1c43e6">getImagePointFromAngles</a> (float angle_x, float angle_y, float &amp;image_x, float &amp;image_y) const</td></tr>
<tr class="separator:adfd931443541e194f1c53d5f7b1c43e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2388ab60ff312e9034df5e67f899ea97"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a2388ab60ff312e9034df5e67f899ea97">getAnglesFromImagePoint</a> (float image_x, float image_y, float &amp;angle_x, float &amp;angle_y) const</td></tr>
<tr class="separator:a2388ab60ff312e9034df5e67f899ea97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86174b766aa77898e0d49ef11f4613b1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a86174b766aa77898e0d49ef11f4613b1">real2DToInt2D</a> (float x, float y, int &amp;xInt, int &amp;yInt) const</td></tr>
<tr class="separator:a86174b766aa77898e0d49ef11f4613b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a824a6bb27b43a174da775a656b81a483"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a824a6bb27b43a174da775a656b81a483">isInImage</a> (int x, int y) const</td></tr>
<tr class="separator:a824a6bb27b43a174da775a656b81a483"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2372989721c3c119bb5d4b5ebd9b59c3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a2372989721c3c119bb5d4b5ebd9b59c3">isValid</a> (int x, int y) const</td></tr>
<tr class="separator:a2372989721c3c119bb5d4b5ebd9b59c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad353c062c9b17adda3797bf970b9934b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#ad353c062c9b17adda3797bf970b9934b">isValid</a> (int index) const</td></tr>
<tr class="separator:ad353c062c9b17adda3797bf970b9934b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75e51885e151759d815ec1b1b72ea4ff"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a75e51885e151759d815ec1b1b72ea4ff">isObserved</a> (int x, int y) const</td></tr>
<tr class="separator:a75e51885e151759d815ec1b1b72ea4ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a771ab2f1ee2952a319da20301b27ab3b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a771ab2f1ee2952a319da20301b27ab3b">isMaxRange</a> (int x, int y) const</td></tr>
<tr class="separator:a771ab2f1ee2952a319da20301b27ab3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb21e9a192704802adabd6693f00e397"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#aeb21e9a192704802adabd6693f00e397">getNormal</a> (int x, int y, int radius, Eigen::Vector3f &amp;normal, int step_size=1) const</td></tr>
<tr class="separator:aeb21e9a192704802adabd6693f00e397"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accb0781e43e55cff62851019ffac47ce"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#accb0781e43e55cff62851019ffac47ce">getNormalForClosestNeighbors</a> (int x, int y, int radius, const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;point, int no_of_nearest_neighbors, Eigen::Vector3f &amp;normal, int step_size=1) const</td></tr>
<tr class="separator:accb0781e43e55cff62851019ffac47ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2de7a8f331c28ac81440ba74e56369bc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a2de7a8f331c28ac81440ba74e56369bc">getNormalForClosestNeighbors</a> (int x, int y, int radius, const Eigen::Vector3f &amp;point, int no_of_nearest_neighbors, Eigen::Vector3f &amp;normal, Eigen::Vector3f *point_on_plane=NULL, int step_size=1) const</td></tr>
<tr class="separator:a2de7a8f331c28ac81440ba74e56369bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cb82433197f15970647793c6271fe9a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a5cb82433197f15970647793c6271fe9a">getNormalForClosestNeighbors</a> (int x, int y, Eigen::Vector3f &amp;normal, int radius=2) const</td></tr>
<tr class="separator:a5cb82433197f15970647793c6271fe9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf1ce91a6aae13aefb5d3026273eb108"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#abf1ce91a6aae13aefb5d3026273eb108">getSurfaceInformation</a> (int x, int y, int radius, const Eigen::Vector3f &amp;point, int no_of_closest_neighbors, int step_size, float &amp;max_closest_neighbor_distance_squared, Eigen::Vector3f &amp;normal, Eigen::Vector3f &amp;mean, Eigen::Vector3f &amp;eigen_values, Eigen::Vector3f *normal_all_neighbors=NULL, Eigen::Vector3f *mean_all_neighbors=NULL, Eigen::Vector3f *eigen_values_all_neighbors=NULL) const</td></tr>
<tr class="separator:abf1ce91a6aae13aefb5d3026273eb108"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae259a9342238404e8dbb3ff938470ce2"><td class="memItemLeft" align="right" valign="top"><a id="ae259a9342238404e8dbb3ff938470ce2"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>getSquaredDistanceOfNthNeighbor</b> (int x, int y, int radius, int n, int step_size) const</td></tr>
<tr class="separator:ae259a9342238404e8dbb3ff938470ce2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b87fa04fd32ec986f1af9149bd46841"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a6b87fa04fd32ec986f1af9149bd46841">getImpactAngle</a> (const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;point1, const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;point2) const</td></tr>
<tr class="separator:a6b87fa04fd32ec986f1af9149bd46841"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6210710d430006d4c4ca93b6f8023da"><td class="memItemLeft" align="right" valign="top"><a id="aa6210710d430006d4c4ca93b6f8023da"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#aa6210710d430006d4c4ca93b6f8023da">getImpactAngle</a> (int x1, int y1, int x2, int y2) const</td></tr>
<tr class="memdesc:aa6210710d430006d4c4ca93b6f8023da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as above <br /></td></tr>
<tr class="separator:aa6210710d430006d4c4ca93b6f8023da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ca716a0e6b2aba846bdb4079275f6d9"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a1ca716a0e6b2aba846bdb4079275f6d9">getImpactAngleBasedOnLocalNormal</a> (int x, int y, int radius) const</td></tr>
<tr class="separator:a1ca716a0e6b2aba846bdb4079275f6d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecd52c29445543d03e40f0d75c8120c0"><td class="memItemLeft" align="right" valign="top">PCL_EXPORTS float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#aecd52c29445543d03e40f0d75c8120c0">getImpactAngleImageBasedOnLocalNormals</a> (int radius) const</td></tr>
<tr class="separator:aecd52c29445543d03e40f0d75c8120c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b6d4bb74fa5134a6c21823dfdcdb13e"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a5b6d4bb74fa5134a6c21823dfdcdb13e">getNormalBasedAcutenessValue</a> (int x, int y, int radius) const</td></tr>
<tr class="separator:a5b6d4bb74fa5134a6c21823dfdcdb13e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2290765b8ccd5608ffa4967dc282395a"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a2290765b8ccd5608ffa4967dc282395a">getAcutenessValue</a> (const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;point1, const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;point2) const</td></tr>
<tr class="separator:a2290765b8ccd5608ffa4967dc282395a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a428803af781c88a43cf0c9b251d081bf"><td class="memItemLeft" align="right" valign="top"><a id="a428803af781c88a43cf0c9b251d081bf"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a428803af781c88a43cf0c9b251d081bf">getAcutenessValue</a> (int x1, int y1, int x2, int y2) const</td></tr>
<tr class="memdesc:a428803af781c88a43cf0c9b251d081bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as above <br /></td></tr>
<tr class="separator:a428803af781c88a43cf0c9b251d081bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56821ed68e8701450b4725ed9c6fd7a0"><td class="memItemLeft" align="right" valign="top">PCL_EXPORTS void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a56821ed68e8701450b4725ed9c6fd7a0">getAcutenessValueImages</a> (int pixel_distance, float *&amp;acuteness_value_image_x, float *&amp;acuteness_value_image_y) const</td></tr>
<tr class="separator:a56821ed68e8701450b4725ed9c6fd7a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b744103dab2ba2a9ada137aa75887f"><td class="memItemLeft" align="right" valign="top">PCL_EXPORTS float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a16b744103dab2ba2a9ada137aa75887f">getSurfaceChange</a> (int x, int y, int radius) const</td></tr>
<tr class="separator:a16b744103dab2ba2a9ada137aa75887f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23b27f51c94a493a2c98c96a6acf3f11"><td class="memItemLeft" align="right" valign="top">PCL_EXPORTS float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a23b27f51c94a493a2c98c96a6acf3f11">getSurfaceChangeImage</a> (int radius) const</td></tr>
<tr class="separator:a23b27f51c94a493a2c98c96a6acf3f11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd94afe865f6cd46cfbc64f45bb1d03e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#afd94afe865f6cd46cfbc64f45bb1d03e">getSurfaceAngleChange</a> (int x, int y, int radius, float &amp;angle_change_x, float &amp;angle_change_y) const</td></tr>
<tr class="separator:afd94afe865f6cd46cfbc64f45bb1d03e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0501e4697fe05327423b4e247baa3528"><td class="memItemLeft" align="right" valign="top">PCL_EXPORTS void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a0501e4697fe05327423b4e247baa3528">getSurfaceAngleChangeImages</a> (int radius, float *&amp;angle_change_image_x, float *&amp;angle_change_image_y) const</td></tr>
<tr class="separator:a0501e4697fe05327423b4e247baa3528"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6a22e10be8bfcedf9297d1e1badef1c"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#ac6a22e10be8bfcedf9297d1e1badef1c">getCurvature</a> (int x, int y, int radius, int step_size) const</td></tr>
<tr class="separator:ac6a22e10be8bfcedf9297d1e1badef1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a942d6b253c5df68008614af6dfed323a"><td class="memItemLeft" align="right" valign="top"><a id="a942d6b253c5df68008614af6dfed323a"></a>
const Eigen::Vector3f&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a942d6b253c5df68008614af6dfed323a">getSensorPos</a> () const</td></tr>
<tr class="memdesc:a942d6b253c5df68008614af6dfed323a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the sensor position <br /></td></tr>
<tr class="separator:a942d6b253c5df68008614af6dfed323a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4f7d854c4f15ab0ab2193cc726c353f"><td class="memItemLeft" align="right" valign="top">PCL_EXPORTS void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#ad4f7d854c4f15ab0ab2193cc726c353f">setUnseenToMaxRange</a> ()</td></tr>
<tr class="separator:ad4f7d854c4f15ab0ab2193cc726c353f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25e2db660717d67a19f5cdb39937c00a"><td class="memItemLeft" align="right" valign="top"><a id="a25e2db660717d67a19f5cdb39937c00a"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a25e2db660717d67a19f5cdb39937c00a">getImageOffsetX</a> () const</td></tr>
<tr class="memdesc:a25e2db660717d67a19f5cdb39937c00a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter for image_offset_x_ <br /></td></tr>
<tr class="separator:a25e2db660717d67a19f5cdb39937c00a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42c06aa5693077ab6db7ec5c691dc677"><td class="memItemLeft" align="right" valign="top"><a id="a42c06aa5693077ab6db7ec5c691dc677"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a42c06aa5693077ab6db7ec5c691dc677">getImageOffsetY</a> () const</td></tr>
<tr class="memdesc:a42c06aa5693077ab6db7ec5c691dc677"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter for image_offset_y_ <br /></td></tr>
<tr class="separator:a42c06aa5693077ab6db7ec5c691dc677"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a962a922e6a1170b1494ee21859087b4e"><td class="memItemLeft" align="right" valign="top"><a id="a962a922e6a1170b1494ee21859087b4e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a962a922e6a1170b1494ee21859087b4e">setImageOffsets</a> (int offset_x, int offset_y)</td></tr>
<tr class="memdesc:a962a922e6a1170b1494ee21859087b4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setter for image offsets <br /></td></tr>
<tr class="separator:a962a922e6a1170b1494ee21859087b4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33f4985713cf3f17ac8f8c69c0201729"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a33f4985713cf3f17ac8f8c69c0201729">getSubImage</a> (int sub_image_image_offset_x, int sub_image_image_offset_y, int sub_image_width, int sub_image_height, int combine_pixels, <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;sub_image) const</td></tr>
<tr class="separator:a33f4985713cf3f17ac8f8c69c0201729"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab39a4eac61ba75bb9f2913a1ff3ec84d"><td class="memItemLeft" align="right" valign="top"><a id="ab39a4eac61ba75bb9f2913a1ff3ec84d"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#ab39a4eac61ba75bb9f2913a1ff3ec84d">getHalfImage</a> (<a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;half_image) const</td></tr>
<tr class="memdesc:ab39a4eac61ba75bb9f2913a1ff3ec84d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a range image with half the resolution <br /></td></tr>
<tr class="separator:ab39a4eac61ba75bb9f2913a1ff3ec84d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83b475eb983cd9edaea5d97c6d098a7c"><td class="memItemLeft" align="right" valign="top"><a id="a83b475eb983cd9edaea5d97c6d098a7c"></a>
PCL_EXPORTS void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a83b475eb983cd9edaea5d97c6d098a7c">getMinMaxRanges</a> (float &amp;min_range, float &amp;max_range) const</td></tr>
<tr class="memdesc:a83b475eb983cd9edaea5d97c6d098a7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the minimum and maximum range in the image <br /></td></tr>
<tr class="separator:a83b475eb983cd9edaea5d97c6d098a7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37582520baf6b317bbb81e85c95cc602"><td class="memItemLeft" align="right" valign="top"><a id="a37582520baf6b317bbb81e85c95cc602"></a>
PCL_EXPORTS void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a37582520baf6b317bbb81e85c95cc602">change3dPointsToLocalCoordinateFrame</a> ()</td></tr>
<tr class="memdesc:a37582520baf6b317bbb81e85c95cc602"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets the sensor pose to 0 and transforms all point positions to this local coordinate frame <br /></td></tr>
<tr class="separator:a37582520baf6b317bbb81e85c95cc602"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a225cab091b80ff23a3c7b0d7291dead2"><td class="memItemLeft" align="right" valign="top">PCL_EXPORTS float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a225cab091b80ff23a3c7b0d7291dead2">getInterpolatedSurfaceProjection</a> (const Eigen::Affine3f &amp;pose, int pixel_size, float world_size) const</td></tr>
<tr class="separator:a225cab091b80ff23a3c7b0d7291dead2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accadf69890d534cfcb0f9d65c60feaac"><td class="memItemLeft" align="right" valign="top"><a id="accadf69890d534cfcb0f9d65c60feaac"></a>
PCL_EXPORTS float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#accadf69890d534cfcb0f9d65c60feaac">getInterpolatedSurfaceProjection</a> (const Eigen::Vector3f &amp;point, int pixel_size, float world_size) const</td></tr>
<tr class="memdesc:accadf69890d534cfcb0f9d65c60feaac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as above, but using the local coordinate frame defined by point and the viewing direction <br /></td></tr>
<tr class="separator:accadf69890d534cfcb0f9d65c60feaac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6646c58459dc6780f114039d296d88d4"><td class="memItemLeft" align="right" valign="top"><a id="a6646c58459dc6780f114039d296d88d4"></a>
Eigen::Affine3f&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a6646c58459dc6780f114039d296d88d4">getTransformationToViewerCoordinateFrame</a> (const Eigen::Vector3f &amp;point) const</td></tr>
<tr class="memdesc:a6646c58459dc6780f114039d296d88d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the local coordinate frame with 0,0,0 in point, upright and Z as the viewing direction <br /></td></tr>
<tr class="separator:a6646c58459dc6780f114039d296d88d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f79a45cb9beea2cca3a6f17a16d44b7"><td class="memItemLeft" align="right" valign="top"><a id="a4f79a45cb9beea2cca3a6f17a16d44b7"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a4f79a45cb9beea2cca3a6f17a16d44b7">getTransformationToViewerCoordinateFrame</a> (const Eigen::Vector3f &amp;point, Eigen::Affine3f &amp;transformation) const</td></tr>
<tr class="memdesc:a4f79a45cb9beea2cca3a6f17a16d44b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as above, using a reference for the retrurn value <br /></td></tr>
<tr class="separator:a4f79a45cb9beea2cca3a6f17a16d44b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab38c579faf678914119d4190b0068ab6"><td class="memItemLeft" align="right" valign="top"><a id="ab38c579faf678914119d4190b0068ab6"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#ab38c579faf678914119d4190b0068ab6">getRotationToViewerCoordinateFrame</a> (const Eigen::Vector3f &amp;point, Eigen::Affine3f &amp;transformation) const</td></tr>
<tr class="memdesc:ab38c579faf678914119d4190b0068ab6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as above, but only returning the rotation <br /></td></tr>
<tr class="separator:ab38c579faf678914119d4190b0068ab6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ee070d08d3e3688e24f8ebffc9b6436"><td class="memItemLeft" align="right" valign="top">PCL_EXPORTS bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a0ee070d08d3e3688e24f8ebffc9b6436">getNormalBasedUprightTransformation</a> (const Eigen::Vector3f &amp;point, float max_dist, Eigen::Affine3f &amp;transformation) const</td></tr>
<tr class="separator:a0ee070d08d3e3688e24f8ebffc9b6436"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03e02f341db8f43860b2cb83824a2123"><td class="memItemLeft" align="right" valign="top">PCL_EXPORTS void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a03e02f341db8f43860b2cb83824a2123">getIntegralImage</a> (float *&amp;integral_image, int *&amp;valid_points_num_image) const</td></tr>
<tr class="separator:a03e02f341db8f43860b2cb83824a2123"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1037c5597389ad0f981c91f820b392a9"><td class="memItemLeft" align="right" valign="top">PCL_EXPORTS void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a1037c5597389ad0f981c91f820b392a9">getBlurredImageUsingIntegralImage</a> (int blur_radius, float *integral_image, int *valid_points_num_image, <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;range_image) const</td></tr>
<tr class="separator:a1037c5597389ad0f981c91f820b392a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29b238256cffb27a526bf89e857e5602"><td class="memItemLeft" align="right" valign="top">virtual PCL_EXPORTS void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a29b238256cffb27a526bf89e857e5602">getBlurredImage</a> (int blur_radius, <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;range_image) const</td></tr>
<tr class="separator:a29b238256cffb27a526bf89e857e5602"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9270139a4ebc5b01e91262bba72c1cf5"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a9270139a4ebc5b01e91262bba72c1cf5">getEuclideanDistanceSquared</a> (int x1, int y1, int x2, int y2) const</td></tr>
<tr class="separator:a9270139a4ebc5b01e91262bba72c1cf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d702bb8f446bb382040e5872b6dbfb1"><td class="memItemLeft" align="right" valign="top"><a id="a4d702bb8f446bb382040e5872b6dbfb1"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a4d702bb8f446bb382040e5872b6dbfb1">getAverageEuclideanDistance</a> (int x, int y, int offset_x, int offset_y, int max_steps) const</td></tr>
<tr class="memdesc:a4d702bb8f446bb382040e5872b6dbfb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Doing the above for some steps in the given direction and averaging <br /></td></tr>
<tr class="separator:a4d702bb8f446bb382040e5872b6dbfb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42e94ffae804608d0a7d2762cddd6fd2"><td class="memItemLeft" align="right" valign="top"><a id="a42e94ffae804608d0a7d2762cddd6fd2"></a>
PCL_EXPORTS void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a42e94ffae804608d0a7d2762cddd6fd2">getRangeImageWithSmoothedSurface</a> (int radius, <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;smoothed_range_image) const</td></tr>
<tr class="memdesc:a42e94ffae804608d0a7d2762cddd6fd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Project all points on the local plane approximation, thereby smoothing the surface of the scan <br /></td></tr>
<tr class="separator:a42e94ffae804608d0a7d2762cddd6fd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a397d6c6b38906e98ab89b817c4191247"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a397d6c6b38906e98ab89b817c4191247">get1dPointAverage</a> (int x, int y, int delta_x, int delta_y, int no_of_points, <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;average_point) const</td></tr>
<tr class="separator:a397d6c6b38906e98ab89b817c4191247"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addd0bcec3d51c70ac205bbfc75dd8c18"><td class="memItemLeft" align="right" valign="top">PCL_EXPORTS float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#addd0bcec3d51c70ac205bbfc75dd8c18">getOverlap</a> (const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;other_range_image, const Eigen::Affine3f &amp;relative_transformation, int search_radius, float max_distance, int pixel_step=1) const</td></tr>
<tr class="separator:addd0bcec3d51c70ac205bbfc75dd8c18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad37bc4a8aab3d63ee7c9ef9428239f00"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#ad37bc4a8aab3d63ee7c9ef9428239f00">getViewingDirection</a> (int x, int y, Eigen::Vector3f &amp;viewing_direction) const</td></tr>
<tr class="separator:ad37bc4a8aab3d63ee7c9ef9428239f00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32dfa3c681a50aebc74ae6830767a831"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a32dfa3c681a50aebc74ae6830767a831">getViewingDirection</a> (const Eigen::Vector3f &amp;point, Eigen::Vector3f &amp;viewing_direction) const</td></tr>
<tr class="separator:a32dfa3c681a50aebc74ae6830767a831"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7bca09c1eb8be12975c47cb6d6233ca5"><td class="memItemLeft" align="right" valign="top">virtual PCL_EXPORTS <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a7bca09c1eb8be12975c47cb6d6233ca5">getNew</a> () const</td></tr>
<tr class="separator:a7bca09c1eb8be12975c47cb6d6233ca5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a454c9018fc001c85e9d8df6900ceb0f6"><td class="memItemLeft" align="right" valign="top">virtual PCL_EXPORTS void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a454c9018fc001c85e9d8df6900ceb0f6">copyTo</a> (<a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;other) const</td></tr>
<tr class="separator:a454c9018fc001c85e9d8df6900ceb0f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classpcl_1_1_point_cloud"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classpcl_1_1_point_cloud')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud&lt; PointWithRange &gt;</a></td></tr>
<tr class="memitem:a06d2d868269c767930f24ac273ed9e05 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a06d2d868269c767930f24ac273ed9e05"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a06d2d868269c767930f24ac273ed9e05">PointCloud</a> ()</td></tr>
<tr class="memdesc:a06d2d868269c767930f24ac273ed9e05 inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. Sets <a class="el" href="classpcl_1_1_point_cloud.html#a3ca88d8ebf6f4f35acbc31cdfb38aa94">is_dense</a> to true, <a class="el" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a> and <a class="el" href="classpcl_1_1_point_cloud.html#a4f34b45220c57f96607513ffad0d9582">height</a> to 0, and the <a class="el" href="classpcl_1_1_point_cloud.html#aad7c2cd4b0d1c7f0fbc096276b5e2230">sensor_origin_</a> and <a class="el" href="classpcl_1_1_point_cloud.html#a5de17e88bdf15e1c4fd1bcc6b85b1941">sensor_orientation_</a> to identity. <br /></td></tr>
<tr class="separator:a06d2d868269c767930f24ac273ed9e05 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac32b534164db32cebec965ed5507e490 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#ac32b534164db32cebec965ed5507e490">PointCloud</a> (<a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &gt; &amp;pc)</td></tr>
<tr class="memdesc:ac32b534164db32cebec965ed5507e490 inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor (needed by compilers such as Intel C++)  <a href="classpcl_1_1_point_cloud.html#ac32b534164db32cebec965ed5507e490">更多...</a><br /></td></tr>
<tr class="separator:ac32b534164db32cebec965ed5507e490 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f4e3cd77252d0256e96de21d1f0219d inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a4f4e3cd77252d0256e96de21d1f0219d">PointCloud</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &gt; &amp;pc)</td></tr>
<tr class="memdesc:a4f4e3cd77252d0256e96de21d1f0219d inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor (needed by compilers such as Intel C++)  <a href="classpcl_1_1_point_cloud.html#a4f4e3cd77252d0256e96de21d1f0219d">更多...</a><br /></td></tr>
<tr class="separator:a4f4e3cd77252d0256e96de21d1f0219d inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a482d4048581443749a04e3aabb3691 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a2a482d4048581443749a04e3aabb3691">PointCloud</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &gt; &amp;pc, const std::vector&lt; int &gt; &amp;indices)</td></tr>
<tr class="memdesc:a2a482d4048581443749a04e3aabb3691 inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor from point cloud subset  <a href="classpcl_1_1_point_cloud.html#a2a482d4048581443749a04e3aabb3691">更多...</a><br /></td></tr>
<tr class="separator:a2a482d4048581443749a04e3aabb3691 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5892ddcac7bafdcf659551846ac6aae inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#ab5892ddcac7bafdcf659551846ac6aae">PointCloud</a> (uint32_t width_, uint32_t height_, const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;value_=<a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a>())</td></tr>
<tr class="memdesc:ab5892ddcac7bafdcf659551846ac6aae inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate constructor from point cloud subset  <a href="classpcl_1_1_point_cloud.html#ab5892ddcac7bafdcf659551846ac6aae">更多...</a><br /></td></tr>
<tr class="separator:ab5892ddcac7bafdcf659551846ac6aae inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa614daa65a6a30956886ccd24e5fa4d4 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="aa614daa65a6a30956886ccd24e5fa4d4"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#aa614daa65a6a30956886ccd24e5fa4d4">~PointCloud</a> ()</td></tr>
<tr class="memdesc:aa614daa65a6a30956886ccd24e5fa4d4 inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:aa614daa65a6a30956886ccd24e5fa4d4 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a335a1cf1c305cc563f9ebeb2a61f994b inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a335a1cf1c305cc563f9ebeb2a61f994b">operator+=</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a> &amp;rhs)</td></tr>
<tr class="memdesc:a335a1cf1c305cc563f9ebeb2a61f994b inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a point cloud to the current cloud.  <a href="classpcl_1_1_point_cloud.html#a335a1cf1c305cc563f9ebeb2a61f994b">更多...</a><br /></td></tr>
<tr class="separator:a335a1cf1c305cc563f9ebeb2a61f994b inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5959e2829b27d093904c222257f1b1c inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#ac5959e2829b27d093904c222257f1b1c">operator+</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a> &amp;rhs)</td></tr>
<tr class="memdesc:ac5959e2829b27d093904c222257f1b1c inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a point cloud to another cloud.  <a href="classpcl_1_1_point_cloud.html#ac5959e2829b27d093904c222257f1b1c">更多...</a><br /></td></tr>
<tr class="separator:ac5959e2829b27d093904c222257f1b1c inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1155fe4ba5cdc7e83cb72159a4ea02dc inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a1155fe4ba5cdc7e83cb72159a4ea02dc">at</a> (int column, int row) const</td></tr>
<tr class="memdesc:a1155fe4ba5cdc7e83cb72159a4ea02dc inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtain the point given by the (column, row) coordinates. Only works on organized datasets (those that have height != 1).  <a href="classpcl_1_1_point_cloud.html#a1155fe4ba5cdc7e83cb72159a4ea02dc">更多...</a><br /></td></tr>
<tr class="separator:a1155fe4ba5cdc7e83cb72159a4ea02dc inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a930c2d1f3d8682ca228873ce1c5cc7c4 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a930c2d1f3d8682ca228873ce1c5cc7c4">at</a> (int column, int row)</td></tr>
<tr class="memdesc:a930c2d1f3d8682ca228873ce1c5cc7c4 inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtain the point given by the (column, row) coordinates. Only works on organized datasets (those that have height != 1).  <a href="classpcl_1_1_point_cloud.html#a930c2d1f3d8682ca228873ce1c5cc7c4">更多...</a><br /></td></tr>
<tr class="separator:a930c2d1f3d8682ca228873ce1c5cc7c4 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a075e6b2927f4f05584acffb14fb7ca0b inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a075e6b2927f4f05584acffb14fb7ca0b"></a>
const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>at</b> (size_t n) const</td></tr>
<tr class="separator:a075e6b2927f4f05584acffb14fb7ca0b inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a939f75f413b130342a5136021e1627e2 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a939f75f413b130342a5136021e1627e2"></a>
<a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>at</b> (size_t n)</td></tr>
<tr class="separator:a939f75f413b130342a5136021e1627e2 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91451e94e3c4d3bbe1e0a499de5163f4 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a91451e94e3c4d3bbe1e0a499de5163f4">operator()</a> (size_t column, size_t row) const</td></tr>
<tr class="memdesc:a91451e94e3c4d3bbe1e0a499de5163f4 inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtain the point given by the (column, row) coordinates. Only works on organized datasets (those that have height != 1).  <a href="classpcl_1_1_point_cloud.html#a91451e94e3c4d3bbe1e0a499de5163f4">更多...</a><br /></td></tr>
<tr class="separator:a91451e94e3c4d3bbe1e0a499de5163f4 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72a535e193c4669ece027971e7fa21a2 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a72a535e193c4669ece027971e7fa21a2">operator()</a> (size_t column, size_t row)</td></tr>
<tr class="memdesc:a72a535e193c4669ece027971e7fa21a2 inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtain the point given by the (column, row) coordinates. Only works on organized datasets (those that have height != 1).  <a href="classpcl_1_1_point_cloud.html#a72a535e193c4669ece027971e7fa21a2">更多...</a><br /></td></tr>
<tr class="separator:a72a535e193c4669ece027971e7fa21a2 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a914dbcef25abdb46f32991ac112002e7 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a914dbcef25abdb46f32991ac112002e7">isOrganized</a> () const</td></tr>
<tr class="memdesc:a914dbcef25abdb46f32991ac112002e7 inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a dataset is organized (e.g., arranged in a structured grid).  <a href="classpcl_1_1_point_cloud.html#a914dbcef25abdb46f32991ac112002e7">更多...</a><br /></td></tr>
<tr class="separator:a914dbcef25abdb46f32991ac112002e7 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9486898ac363e8206829da7c01ea62d inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">Eigen::Map&lt; Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#ab9486898ac363e8206829da7c01ea62d">getMatrixXfMap</a> (int dim, int stride, int offset)</td></tr>
<tr class="memdesc:ab9486898ac363e8206829da7c01ea62d inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an Eigen MatrixXf (assumes float values) mapped to the specified dimensions of the PointCloud. <a class="anchor" id="getMatrixXfMap"></a> <a href="classpcl_1_1_point_cloud.html#ab9486898ac363e8206829da7c01ea62d">更多...</a><br /></td></tr>
<tr class="separator:ab9486898ac363e8206829da7c01ea62d inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fb96c26772eca605280d622efe35995 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">const Eigen::Map&lt; const Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a0fb96c26772eca605280d622efe35995">getMatrixXfMap</a> (int dim, int stride, int offset) const</td></tr>
<tr class="memdesc:a0fb96c26772eca605280d622efe35995 inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an Eigen MatrixXf (assumes float values) mapped to the specified dimensions of the PointCloud. <a class="anchor" id="getMatrixXfMap"></a> <a href="classpcl_1_1_point_cloud.html#a0fb96c26772eca605280d622efe35995">更多...</a><br /></td></tr>
<tr class="separator:a0fb96c26772eca605280d622efe35995 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a194a19cac54494383e3706a72f4240fb inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">Eigen::Map&lt; Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a194a19cac54494383e3706a72f4240fb">getMatrixXfMap</a> ()</td></tr>
<tr class="memdesc:a194a19cac54494383e3706a72f4240fb inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an Eigen MatrixXf (assumes float values) mapped to the PointCloud.  <a href="classpcl_1_1_point_cloud.html#a194a19cac54494383e3706a72f4240fb">更多...</a><br /></td></tr>
<tr class="separator:a194a19cac54494383e3706a72f4240fb inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada3e021bcb3f4d8d62ea3f00324fc126 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">const Eigen::Map&lt; const Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#ada3e021bcb3f4d8d62ea3f00324fc126">getMatrixXfMap</a> () const</td></tr>
<tr class="memdesc:ada3e021bcb3f4d8d62ea3f00324fc126 inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an Eigen MatrixXf (assumes float values) mapped to the PointCloud.  <a href="classpcl_1_1_point_cloud.html#ada3e021bcb3f4d8d62ea3f00324fc126">更多...</a><br /></td></tr>
<tr class="separator:ada3e021bcb3f4d8d62ea3f00324fc126 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28d991dffbab8ccc854e4c77c2cbe851 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a28d991dffbab8ccc854e4c77c2cbe851"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> ()</td></tr>
<tr class="separator:a28d991dffbab8ccc854e4c77c2cbe851 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63dc8d896d90c5c16b43a4e8b603d742 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a63dc8d896d90c5c16b43a4e8b603d742"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> () const</td></tr>
<tr class="separator:a63dc8d896d90c5c16b43a4e8b603d742 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a428eb0a69891d347ffbeb1ab3addcb30 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a428eb0a69891d347ffbeb1ab3addcb30"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>end</b> ()</td></tr>
<tr class="separator:a428eb0a69891d347ffbeb1ab3addcb30 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3ad7a59d8e2f3ded78c17dede26c6b9 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="ae3ad7a59d8e2f3ded78c17dede26c6b9"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>end</b> () const</td></tr>
<tr class="separator:ae3ad7a59d8e2f3ded78c17dede26c6b9 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc80ec2ec9dc2d3e940850f0c757a32b inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="acc80ec2ec9dc2d3e940850f0c757a32b"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>size</b> () const</td></tr>
<tr class="separator:acc80ec2ec9dc2d3e940850f0c757a32b inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab58ad20b233b05da011a20718e6509c4 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="ab58ad20b233b05da011a20718e6509c4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>reserve</b> (size_t n)</td></tr>
<tr class="separator:ab58ad20b233b05da011a20718e6509c4 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1626420d44e28b5ab22bdc2f1fc6c7ff inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a1626420d44e28b5ab22bdc2f1fc6c7ff"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>empty</b> () const</td></tr>
<tr class="separator:a1626420d44e28b5ab22bdc2f1fc6c7ff inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d60b6927b31ef89cd3b97e8173ea4aa inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a2d60b6927b31ef89cd3b97e8173ea4aa">resize</a> (size_t n)</td></tr>
<tr class="memdesc:a2d60b6927b31ef89cd3b97e8173ea4aa inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resize the cloud  <a href="classpcl_1_1_point_cloud.html#a2d60b6927b31ef89cd3b97e8173ea4aa">更多...</a><br /></td></tr>
<tr class="separator:a2d60b6927b31ef89cd3b97e8173ea4aa inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae339455e1dcc5049cc76d8390dfd3fd6 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="ae339455e1dcc5049cc76d8390dfd3fd6"></a>
const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (size_t n) const</td></tr>
<tr class="separator:ae339455e1dcc5049cc76d8390dfd3fd6 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d298930acd2ae539f47f7c3d9bdfb30 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a2d298930acd2ae539f47f7c3d9bdfb30"></a>
<a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (size_t n)</td></tr>
<tr class="separator:a2d298930acd2ae539f47f7c3d9bdfb30 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4eb4170da773993d46db2e760d74736d inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a4eb4170da773993d46db2e760d74736d"></a>
const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>front</b> () const</td></tr>
<tr class="separator:a4eb4170da773993d46db2e760d74736d inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a157e45c8c8bb7b028b315e3a1548cc85 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a157e45c8c8bb7b028b315e3a1548cc85"></a>
<a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>front</b> ()</td></tr>
<tr class="separator:a157e45c8c8bb7b028b315e3a1548cc85 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6381d79fcde03c65cdddb8abf610ae46 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a6381d79fcde03c65cdddb8abf610ae46"></a>
const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>back</b> () const</td></tr>
<tr class="separator:a6381d79fcde03c65cdddb8abf610ae46 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21a3d18a47ea5ef7ea379fac42f7575a inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a21a3d18a47ea5ef7ea379fac42f7575a"></a>
<a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>back</b> ()</td></tr>
<tr class="separator:a21a3d18a47ea5ef7ea379fac42f7575a inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b4d7abee110e47d90635eb042488bb4 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a0b4d7abee110e47d90635eb042488bb4">push_back</a> (const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;pt)</td></tr>
<tr class="memdesc:a0b4d7abee110e47d90635eb042488bb4 inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a new point in the cloud, at the end of the container.  <a href="classpcl_1_1_point_cloud.html#a0b4d7abee110e47d90635eb042488bb4">更多...</a><br /></td></tr>
<tr class="separator:a0b4d7abee110e47d90635eb042488bb4 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75387c07a2d24ee943eb71ab1c00e4a7 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a75387c07a2d24ee943eb71ab1c00e4a7">insert</a> (iterator position, const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;pt)</td></tr>
<tr class="memdesc:a75387c07a2d24ee943eb71ab1c00e4a7 inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a new point in the cloud, given an iterator.  <a href="classpcl_1_1_point_cloud.html#a75387c07a2d24ee943eb71ab1c00e4a7">更多...</a><br /></td></tr>
<tr class="separator:a75387c07a2d24ee943eb71ab1c00e4a7 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70ff499c4a3f9398bc3d1629b066db30 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a70ff499c4a3f9398bc3d1629b066db30">insert</a> (iterator position, size_t n, const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;pt)</td></tr>
<tr class="memdesc:a70ff499c4a3f9398bc3d1629b066db30 inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a new point in the cloud N times, given an iterator.  <a href="classpcl_1_1_point_cloud.html#a70ff499c4a3f9398bc3d1629b066db30">更多...</a><br /></td></tr>
<tr class="separator:a70ff499c4a3f9398bc3d1629b066db30 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cccb494b2875101b528a8919c738f9b inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a3cccb494b2875101b528a8919c738f9b">insert</a> (iterator position, InputIterator first, InputIterator last)</td></tr>
<tr class="memdesc:a3cccb494b2875101b528a8919c738f9b inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a new range of points in the cloud, at a certain position.  <a href="classpcl_1_1_point_cloud.html#a3cccb494b2875101b528a8919c738f9b">更多...</a><br /></td></tr>
<tr class="separator:a3cccb494b2875101b528a8919c738f9b inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06463926e7cbe52ed3c024c7bc7565d3 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a06463926e7cbe52ed3c024c7bc7565d3">erase</a> (iterator position)</td></tr>
<tr class="memdesc:a06463926e7cbe52ed3c024c7bc7565d3 inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase a point in the cloud.  <a href="classpcl_1_1_point_cloud.html#a06463926e7cbe52ed3c024c7bc7565d3">更多...</a><br /></td></tr>
<tr class="separator:a06463926e7cbe52ed3c024c7bc7565d3 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2901a922dac074254160e1e11912d2c5 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a2901a922dac074254160e1e11912d2c5">erase</a> (iterator first, iterator last)</td></tr>
<tr class="memdesc:a2901a922dac074254160e1e11912d2c5 inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase a set of points given by a (first, last) iterator pair  <a href="classpcl_1_1_point_cloud.html#a2901a922dac074254160e1e11912d2c5">更多...</a><br /></td></tr>
<tr class="separator:a2901a922dac074254160e1e11912d2c5 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4a0b63e9c8442286b08336f8385a9ea inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#ab4a0b63e9c8442286b08336f8385a9ea">swap</a> (<a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &gt; &amp;rhs)</td></tr>
<tr class="memdesc:ab4a0b63e9c8442286b08336f8385a9ea inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap a point cloud with another cloud.  <a href="classpcl_1_1_point_cloud.html#ab4a0b63e9c8442286b08336f8385a9ea">更多...</a><br /></td></tr>
<tr class="separator:ab4a0b63e9c8442286b08336f8385a9ea inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a963c0da7320055c79e5af0df4f6ad224 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a963c0da7320055c79e5af0df4f6ad224"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a963c0da7320055c79e5af0df4f6ad224">clear</a> ()</td></tr>
<tr class="memdesc:a963c0da7320055c79e5af0df4f6ad224 inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes all points in a cloud and sets the width and height to 0. <br /></td></tr>
<tr class="separator:a963c0da7320055c79e5af0df4f6ad224 inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afebbbb9c522a94cf245dd3968b50ed5e inherit pub_methods_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top">Ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#afebbbb9c522a94cf245dd3968b50ed5e">makeShared</a> () const</td></tr>
<tr class="memdesc:afebbbb9c522a94cf245dd3968b50ed5e inherit pub_methods_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the cloud to the heap and return a smart pointer Note that deep copy is performed, so avoid using this function on non-empty clouds. The changes of the returned cloud are not mirrored back to this one.  <a href="classpcl_1_1_point_cloud.html#afebbbb9c522a94cf245dd3968b50ed5e">更多...</a><br /></td></tr>
<tr class="separator:afebbbb9c522a94cf245dd3968b50ed5e inherit pub_methods_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
静态 Public 成员函数</h2></td></tr>
<tr class="memitem:ac504743608967dcd142dc4249b82ea5a"><td class="memItemLeft" align="right" valign="top">static float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#ac504743608967dcd142dc4249b82ea5a">getMaxAngleSize</a> (const Eigen::Affine3f &amp;viewer_pose, const Eigen::Vector3f &amp;center, float radius)</td></tr>
<tr class="memdesc:ac504743608967dcd142dc4249b82ea5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of a certain area when seen from the given pose  <a href="classpcl_1_1_range_image.html#ac504743608967dcd142dc4249b82ea5a">更多...</a><br /></td></tr>
<tr class="separator:ac504743608967dcd142dc4249b82ea5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e3b75077a96415e431b90f53a249773"><td class="memItemLeft" align="right" valign="top">static Eigen::Vector3f&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a2e3b75077a96415e431b90f53a249773">getEigenVector3f</a> (const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;point)</td></tr>
<tr class="memdesc:a2e3b75077a96415e431b90f53a249773"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get Eigen::Vector3f from <a class="el" href="structpcl_1_1_point_with_range.html" title="A point structure representing Euclidean xyz coordinates, padded with an extra range float.">PointWithRange</a>  <a href="classpcl_1_1_range_image.html#a2e3b75077a96415e431b90f53a249773">更多...</a><br /></td></tr>
<tr class="separator:a2e3b75077a96415e431b90f53a249773"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5c0908bfbe060fdb517728fe56b2c55"><td class="memItemLeft" align="right" valign="top">static PCL_EXPORTS void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#af5c0908bfbe060fdb517728fe56b2c55">getCoordinateFrameTransformation</a> (RangeImage::CoordinateFrame coordinate_frame, Eigen::Affine3f &amp;transformation)</td></tr>
<tr class="memdesc:af5c0908bfbe060fdb517728fe56b2c55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the transformation that transforms the given coordinate frame into CAMERA_FRAME  <a href="classpcl_1_1_range_image.html#af5c0908bfbe060fdb517728fe56b2c55">更多...</a><br /></td></tr>
<tr class="separator:af5c0908bfbe060fdb517728fe56b2c55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49c425d518d92def18300cd029ae1855"><td class="memTemplParams" colspan="2">template&lt;typename PointCloudTypeWithViewpoints &gt; </td></tr>
<tr class="memitem:a49c425d518d92def18300cd029ae1855"><td class="memTemplItemLeft" align="right" valign="top">static Eigen::Vector3f&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a49c425d518d92def18300cd029ae1855">getAverageViewPoint</a> (const PointCloudTypeWithViewpoints &amp;point_cloud)</td></tr>
<tr class="memdesc:a49c425d518d92def18300cd029ae1855"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the average viewpoint of a point cloud where each point carries viewpoint information as vp_x, vp_y, vp_z  <a href="classpcl_1_1_range_image.html#a49c425d518d92def18300cd029ae1855">更多...</a><br /></td></tr>
<tr class="separator:a49c425d518d92def18300cd029ae1855"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75e39ee2587a56fbdda651c27cc7898e"><td class="memItemLeft" align="right" valign="top">static PCL_EXPORTS void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a75e39ee2587a56fbdda651c27cc7898e">extractFarRanges</a> (const <a class="el" href="structpcl_1_1_p_c_l_point_cloud2.html">pcl::PCLPointCloud2</a> &amp;point_cloud_data, <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_with_viewpoint.html">PointWithViewpoint</a> &gt; &amp;far_ranges)</td></tr>
<tr class="memdesc:a75e39ee2587a56fbdda651c27cc7898e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the provided data includes far ranges and add them to far_ranges  <a href="classpcl_1_1_range_image.html#a75e39ee2587a56fbdda651c27cc7898e">更多...</a><br /></td></tr>
<tr class="separator:a75e39ee2587a56fbdda651c27cc7898e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
静态 Public 属性</h2></td></tr>
<tr class="memitem:a34fe4f6701548e2514ae45099309cac4"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a34fe4f6701548e2514ae45099309cac4">max_no_of_threads</a></td></tr>
<tr class="separator:a34fe4f6701548e2514ae45099309cac4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bd552e2971d69843fdec72413823f57"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a1bd552e2971d69843fdec72413823f57">debug</a></td></tr>
<tr class="separator:a1bd552e2971d69843fdec72413823f57"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-methods"></a>
静态 Protected 成员函数</h2></td></tr>
<tr class="memitem:ae74c34594e1417fb702d92ff51f2b495"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#ae74c34594e1417fb702d92ff51f2b495">createLookupTables</a> ()</td></tr>
<tr class="separator:ae74c34594e1417fb702d92ff51f2b495"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cb20514cdc04674448a5e5c6cb373bc"><td class="memItemLeft" align="right" valign="top">static float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a6cb20514cdc04674448a5e5c6cb373bc">asinLookUp</a> (float value)</td></tr>
<tr class="separator:a6cb20514cdc04674448a5e5c6cb373bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17835570c515cca3ba1ecd0f132bf013"><td class="memItemLeft" align="right" valign="top">static float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a17835570c515cca3ba1ecd0f132bf013">atan2LookUp</a> (float y, float x)</td></tr>
<tr class="separator:a17835570c515cca3ba1ecd0f132bf013"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29ab1f1088b1c8d111dfe02139882ded"><td class="memItemLeft" align="right" valign="top">static float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a29ab1f1088b1c8d111dfe02139882ded">cosLookUp</a> (float value)</td></tr>
<tr class="separator:a29ab1f1088b1c8d111dfe02139882ded"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected 属性</h2></td></tr>
<tr class="memitem:ada8177479f0e95999a66294db4c0c3eb"><td class="memItemLeft" align="right" valign="top">Eigen::Affine3f&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#ada8177479f0e95999a66294db4c0c3eb">to_range_image_system_</a></td></tr>
<tr class="separator:ada8177479f0e95999a66294db4c0c3eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31c36f147403c0f64e1c3a386b30e229"><td class="memItemLeft" align="right" valign="top">Eigen::Affine3f&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a31c36f147403c0f64e1c3a386b30e229">to_world_system_</a></td></tr>
<tr class="separator:a31c36f147403c0f64e1c3a386b30e229"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdbfb655cdfeb5d8ace1ac841a52a524"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#abdbfb655cdfeb5d8ace1ac841a52a524">angular_resolution_x_</a></td></tr>
<tr class="separator:abdbfb655cdfeb5d8ace1ac841a52a524"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9471a00ecde65c754227e155cc234942"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a9471a00ecde65c754227e155cc234942">angular_resolution_y_</a></td></tr>
<tr class="separator:a9471a00ecde65c754227e155cc234942"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbb1466576e6c2d08e3065b67da0b250"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#adbb1466576e6c2d08e3065b67da0b250">angular_resolution_x_reciprocal_</a></td></tr>
<tr class="separator:adbb1466576e6c2d08e3065b67da0b250"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a843659230146a43690ee4d4fb53fcc92"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a843659230146a43690ee4d4fb53fcc92">angular_resolution_y_reciprocal_</a></td></tr>
<tr class="separator:a843659230146a43690ee4d4fb53fcc92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac01b76b2e83df5967984084e7558c2d5"><td class="memItemLeft" align="right" valign="top"><a id="ac01b76b2e83df5967984084e7558c2d5"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>image_offset_x_</b></td></tr>
<tr class="separator:ac01b76b2e83df5967984084e7558c2d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1518af9f1c9eb6ac259be92824842e23"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a1518af9f1c9eb6ac259be92824842e23">image_offset_y_</a></td></tr>
<tr class="separator:a1518af9f1c9eb6ac259be92824842e23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51bf019906a3256038561354d6b95885"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_range_image.html#a51bf019906a3256038561354d6b95885">unobserved_point</a></td></tr>
<tr class="separator:a51bf019906a3256038561354d6b95885"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classpcl_1_1_point_cloud"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpcl_1_1_point_cloud')"><img src="closed.png" alt="-"/>&#160;Protected 属性 继承自 <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud&lt; PointWithRange &gt;</a></td></tr>
<tr class="memitem:a306d8c279a6fb68c26a81d69dcee1f97 inherit pro_attribs_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a306d8c279a6fb68c26a81d69dcee1f97"></a>
boost::shared_ptr&lt; MsgFieldMap &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mapping_</b></td></tr>
<tr class="separator:a306d8c279a6fb68c26a81d69dcee1f97 inherit pro_attribs_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
静态 Protected 属性</h2></td></tr>
<tr class="memitem:a9429abb4524c74600122006d213242ee"><td class="memItemLeft" align="right" valign="top"><a id="a9429abb4524c74600122006d213242ee"></a>
static const int&#160;</td><td class="memItemRight" valign="bottom"><b>lookup_table_size</b></td></tr>
<tr class="separator:a9429abb4524c74600122006d213242ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa864a69c51f0de61769d0bcc6fc3b172"><td class="memItemLeft" align="right" valign="top"><a id="aa864a69c51f0de61769d0bcc6fc3b172"></a>
static std::vector&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>asin_lookup_table</b></td></tr>
<tr class="separator:aa864a69c51f0de61769d0bcc6fc3b172"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6de3e6d8b323a2d6900cc15815c93d7d"><td class="memItemLeft" align="right" valign="top"><a id="a6de3e6d8b323a2d6900cc15815c93d7d"></a>
static std::vector&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>atan_lookup_table</b></td></tr>
<tr class="separator:a6de3e6d8b323a2d6900cc15815c93d7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa811b322d035983d020b3599a06fee3d"><td class="memItemLeft" align="right" valign="top"><a id="aa811b322d035983d020b3599a06fee3d"></a>
static std::vector&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>cos_lookup_table</b></td></tr>
<tr class="separator:aa811b322d035983d020b3599a06fee3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
额外继承的成员函数</h2></td></tr>
<tr class="inherit_header pub_attribs_classpcl_1_1_point_cloud"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classpcl_1_1_point_cloud')"><img src="closed.png" alt="-"/>&#160;Public 属性 继承自 <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud&lt; PointWithRange &gt;</a></td></tr>
<tr class="memitem:a82e0be055a617e5e74102ed62712b352 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a82e0be055a617e5e74102ed62712b352"></a>
<a class="el" href="structpcl_1_1_p_c_l_header.html">pcl::PCLHeader</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a82e0be055a617e5e74102ed62712b352">header</a></td></tr>
<tr class="memdesc:a82e0be055a617e5e74102ed62712b352 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">The point cloud header. It contains information about the acquisition time. <br /></td></tr>
<tr class="separator:a82e0be055a617e5e74102ed62712b352 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af16a62638198313b9c093127c492c884 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="af16a62638198313b9c093127c492c884"></a>
std::vector&lt; <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a>, Eigen::aligned_allocator&lt; <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a></td></tr>
<tr class="memdesc:af16a62638198313b9c093127c492c884 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">The point data. <br /></td></tr>
<tr class="separator:af16a62638198313b9c093127c492c884 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2185a6453f8ad905d7bdf7b45754a160 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a2185a6453f8ad905d7bdf7b45754a160"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a></td></tr>
<tr class="memdesc:a2185a6453f8ad905d7bdf7b45754a160 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">The point cloud width (if organized as an image-structure). <br /></td></tr>
<tr class="separator:a2185a6453f8ad905d7bdf7b45754a160 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f34b45220c57f96607513ffad0d9582 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a4f34b45220c57f96607513ffad0d9582"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a4f34b45220c57f96607513ffad0d9582">height</a></td></tr>
<tr class="memdesc:a4f34b45220c57f96607513ffad0d9582 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">The point cloud height (if organized as an image-structure). <br /></td></tr>
<tr class="separator:a4f34b45220c57f96607513ffad0d9582 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ca88d8ebf6f4f35acbc31cdfb38aa94 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a3ca88d8ebf6f4f35acbc31cdfb38aa94"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a3ca88d8ebf6f4f35acbc31cdfb38aa94">is_dense</a></td></tr>
<tr class="memdesc:a3ca88d8ebf6f4f35acbc31cdfb38aa94 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if no points are invalid (e.g., have NaN or Inf values). <br /></td></tr>
<tr class="separator:a3ca88d8ebf6f4f35acbc31cdfb38aa94 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad7c2cd4b0d1c7f0fbc096276b5e2230 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="aad7c2cd4b0d1c7f0fbc096276b5e2230"></a>
Eigen::Vector4f&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#aad7c2cd4b0d1c7f0fbc096276b5e2230">sensor_origin_</a></td></tr>
<tr class="memdesc:aad7c2cd4b0d1c7f0fbc096276b5e2230 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sensor acquisition pose (origin/translation). <br /></td></tr>
<tr class="separator:aad7c2cd4b0d1c7f0fbc096276b5e2230 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5de17e88bdf15e1c4fd1bcc6b85b1941 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="memItemLeft" align="right" valign="top"><a id="a5de17e88bdf15e1c4fd1bcc6b85b1941"></a>
Eigen::Quaternionf&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_point_cloud.html#a5de17e88bdf15e1c4fd1bcc6b85b1941">sensor_orientation_</a></td></tr>
<tr class="memdesc:a5de17e88bdf15e1c4fd1bcc6b85b1941 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sensor acquisition pose (rotation). <br /></td></tr>
<tr class="separator:a5de17e88bdf15e1c4fd1bcc6b85b1941 inherit pub_attribs_classpcl_1_1_point_cloud"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p><a class="el" href="classpcl_1_1_range_image.html" title="RangeImage is derived from pcl/PointCloud and provides functionalities with focus on situations where...">RangeImage</a> is derived from pcl/PointCloud and provides functionalities with focus on situations where a 3D scene was captured from a specific view point. </p>
<dl class="section author"><dt>作者</dt><dd>Bastian Steder </dd></dl>
</div><h2 class="groupheader">构造及析构函数说明</h2>
<a id="af18b2d3410fb7799ad4de375b51df035"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af18b2d3410fb7799ad4de375b51df035">&#9670;&nbsp;</a></span>RangeImage()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PCL_EXPORTS pcl::RangeImage::RangeImage </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor </p>

</div>
</div>
<a id="a274fcd95e5f7c8da5f4f5ecf151bad40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a274fcd95e5f7c8da5f4f5ecf151bad40">&#9670;&nbsp;</a></span>~RangeImage()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual PCL_EXPORTS pcl::RangeImage::~RangeImage </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Destructor </p>

</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="a6cb20514cdc04674448a5e5c6cb373bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6cb20514cdc04674448a5e5c6cb373bc">&#9670;&nbsp;</a></span>asinLookUp()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::asinLookUp </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Query the asin lookup table </p>
<div class="fragment"><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;{</div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;  <span class="keywordflow">return</span> (asin_lookup_table[</div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;      <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (pcl_lrintf ( (<span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (lookup_table_size-1) / 2.0f) * value)) + </div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (lookup_table_size-1) / 2.0f)]);</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a17835570c515cca3ba1ecd0f132bf013"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a17835570c515cca3ba1ecd0f132bf013">&#9670;&nbsp;</a></span>atan2LookUp()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::atan2LookUp </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Query the atan2 lookup table </p>
<div class="fragment"><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;{</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;  <span class="keywordflow">if</span> (x==0 &amp;&amp; y==0)</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;  <span class="keywordtype">float</span> ret;</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;  <span class="keywordflow">if</span> (fabsf (x) &lt; fabsf (y)) </div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;  {</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    ret = atan_lookup_table[</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;      <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;          <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (pcl_lrintf ( (<span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (lookup_table_size-1) / 2.0f) * (x / y))) + </div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;          <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (lookup_table_size-1) / 2.0f)];</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    ret = <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (x*y &gt; 0 ? M_PI/2-ret : -M_PI/2-ret);</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;  }</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    ret = atan_lookup_table[</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;      <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;          <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (pcl_lrintf ( (<span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (lookup_table_size-1) / 2.0f) * (y / x))) + </div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;          <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (lookup_table_size-1)/2.0f)];</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;  <span class="keywordflow">if</span> (x &lt; 0)</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    ret = <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (y &lt; 0 ? ret-M_PI : ret+M_PI);</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;  </div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;  <span class="keywordflow">return</span> (ret);</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="abbb77866cf4ee5d2a619f4f8cc62cc9b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abbb77866cf4ee5d2a619f4f8cc62cc9b">&#9670;&nbsp;</a></span>calculate3DPoint() <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::calculate3DPoint </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>image_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Calculate the 3D point according to the given image point and the range value at the closest pixel </p>
<div class="fragment"><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;{</div>
<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;  <span class="keyword">const</span> PointWithRange&amp; point_in_image = <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (image_x, image_y);</div>
<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a1acc16b4b5fb7071175bada62a5b75d0">calculate3DPoint</a> (image_x, image_y, point_in_image.range, point);</div>
<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a1acc16b4b5fb7071175bada62a5b75d0"><div class="ttname"><a href="classpcl_1_1_range_image.html#a1acc16b4b5fb7071175bada62a5b75d0">pcl::RangeImage::calculate3DPoint</a></div><div class="ttdeci">void calculate3DPoint(float image_x, float image_y, float range, PointWithRange &amp;point) const</div><div class="ttdef"><b>Definition:</b> range_image.hpp:585</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a52164736793c99cc9fc48dedee615e45"><div class="ttname"><a href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">pcl::RangeImage::getPoint</a></div><div class="ttdeci">const PointWithRange &amp; getPoint(int image_x, int image_y) const</div><div class="ttdoc">Return the 3D point with range at the given image position</div><div class="ttdef"><b>Definition:</b> range_image.hpp:479</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aa9e97e7487ac21a77075b5f8b64ca205"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9e97e7487ac21a77075b5f8b64ca205">&#9670;&nbsp;</a></span>calculate3DPoint() <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::calculate3DPoint </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>image_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>range</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Calculate the 3D point according to the given image point and range </p>

<p>被 <a class="el" href="classpcl_1_1_range_image_spherical.html#a43849e7a155b8af09e0355fe77e65266">pcl::RangeImageSpherical</a> , 以及 <a class="el" href="classpcl_1_1_range_image_planar.html#ad70f36ae057187661eaf644c83844f33">pcl::RangeImagePlanar</a> 重载.</p>
<div class="fragment"><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;{</div>
<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;  <span class="keywordtype">float</span> angle_x, angle_y;</div>
<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;  <span class="comment">//std::cout &lt;&lt; image_x&lt;&lt;&quot;,&quot;&lt;&lt;image_y&lt;&lt;&quot;,&quot;&lt;&lt;range;</span></div>
<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a2388ab60ff312e9034df5e67f899ea97">getAnglesFromImagePoint</a> (image_x, image_y, angle_x, angle_y);</div>
<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;  </div>
<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;  <span class="keywordtype">float</span> cosY = cosf (angle_y);</div>
<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;  point = Eigen::Vector3f (range * sinf (angle_x) * cosY, range * sinf (angle_y), range * cosf (angle_x)*cosY);</div>
<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;  point = <a class="code" href="classpcl_1_1_range_image.html#a31c36f147403c0f64e1c3a386b30e229">to_world_system_</a> * point;</div>
<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a2388ab60ff312e9034df5e67f899ea97"><div class="ttname"><a href="classpcl_1_1_range_image.html#a2388ab60ff312e9034df5e67f899ea97">pcl::RangeImage::getAnglesFromImagePoint</a></div><div class="ttdeci">void getAnglesFromImagePoint(float image_x, float image_y, float &amp;angle_x, float &amp;angle_y) const</div><div class="ttdef"><b>Definition:</b> range_image.hpp:602</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a31c36f147403c0f64e1c3a386b30e229"><div class="ttname"><a href="classpcl_1_1_range_image.html#a31c36f147403c0f64e1c3a386b30e229">pcl::RangeImage::to_world_system_</a></div><div class="ttdeci">Eigen::Affine3f to_world_system_</div><div class="ttdef"><b>Definition:</b> range_image.h:771</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a1acc16b4b5fb7071175bada62a5b75d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1acc16b4b5fb7071175bada62a5b75d0">&#9670;&nbsp;</a></span>calculate3DPoint() <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::calculate3DPoint </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>image_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>range</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td>
          <td class="paramname"><em>point</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Calculate the 3D point according to the given image point and range </p>
<div class="fragment"><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;                                                                                                    {</div>
<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;  point.range = range;</div>
<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;  Eigen::Vector3f tmp_point;</div>
<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a1acc16b4b5fb7071175bada62a5b75d0">calculate3DPoint</a> (image_x, image_y, range, tmp_point);</div>
<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;  point.x=tmp_point[0];  point.y=tmp_point[1];  point.z=tmp_point[2];</div>
<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a0f969bd0149b7848f0f26b44bb88035c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f969bd0149b7848f0f26b44bb88035c">&#9670;&nbsp;</a></span>calculate3DPoint() <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::calculate3DPoint </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>image_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td>
          <td class="paramname"><em>point</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Calculate the 3D point according to the given image point and the range value at the closest pixel </p>
<div class="fragment"><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;{</div>
<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;  <span class="keyword">const</span> PointWithRange&amp; point_in_image = <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (image_x, image_y);</div>
<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a1acc16b4b5fb7071175bada62a5b75d0">calculate3DPoint</a> (image_x, image_y, point_in_image.range, point);</div>
<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a3e63aa0e7dc143f4a4a15611edcede70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e63aa0e7dc143f4a4a15611edcede70">&#9670;&nbsp;</a></span>checkPoint()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::checkPoint </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td>
          <td class="paramname"><em>point_in_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>point_in_image will be the point in the image at the position the given point would be. Returns the range of the given point. </p>
<div class="fragment"><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;{</div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;  <span class="keywordtype">int</span> image_x, image_y;</div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;  <span class="keywordtype">float</span> range;</div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a7a53bfc9f4a3365ee8e62513ae37eb5c">getImagePoint</a> (point, image_x, image_y, range);</div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_range_image.html#a824a6bb27b43a174da775a656b81a483">isInImage</a> (image_x, image_y))</div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    point_in_image = <a class="code" href="classpcl_1_1_range_image.html#a51bf019906a3256038561354d6b95885">unobserved_point</a>;</div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    point_in_image = <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (image_x, image_y);</div>
<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;  <span class="keywordflow">return</span> range;</div>
<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a51bf019906a3256038561354d6b95885"><div class="ttname"><a href="classpcl_1_1_range_image.html#a51bf019906a3256038561354d6b95885">pcl::RangeImage::unobserved_point</a></div><div class="ttdeci">PointWithRange unobserved_point</div><div class="ttdef"><b>Definition:</b> range_image.h:780</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a7a53bfc9f4a3365ee8e62513ae37eb5c"><div class="ttname"><a href="classpcl_1_1_range_image.html#a7a53bfc9f4a3365ee8e62513ae37eb5c">pcl::RangeImage::getImagePoint</a></div><div class="ttdeci">virtual void getImagePoint(const Eigen::Vector3f &amp;point, float &amp;image_x, float &amp;image_y, float &amp;range) const</div><div class="ttdef"><b>Definition:</b> range_image.hpp:352</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a824a6bb27b43a174da775a656b81a483"><div class="ttname"><a href="classpcl_1_1_range_image.html#a824a6bb27b43a174da775a656b81a483">pcl::RangeImage::isInImage</a></div><div class="ttdeci">bool isInImage(int x, int y) const</div><div class="ttdef"><b>Definition:</b> range_image.hpp:441</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a454c9018fc001c85e9d8df6900ceb0f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a454c9018fc001c85e9d8df6900ceb0f6">&#9670;&nbsp;</a></span>copyTo()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual PCL_EXPORTS void pcl::RangeImage::copyTo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Copy other to *this. Necessary for use in virtual functions that need to copy derived <a class="el" href="classpcl_1_1_range_image.html" title="RangeImage is derived from pcl/PointCloud and provides functionalities with focus on situations where...">RangeImage</a> classes (like <a class="el" href="classpcl_1_1_range_image_planar.html" title="RangeImagePlanar is derived from the original range image and differs from it because it&#39;s not a sphe...">RangeImagePlanar</a>) </p>

<p>被 <a class="el" href="classpcl_1_1_range_image_planar.html#abd9ed7e2765d0f7cbb64ae9c890543e2">pcl::RangeImagePlanar</a> 重载.</p>

</div>
</div>
<a id="a29ab1f1088b1c8d111dfe02139882ded"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29ab1f1088b1c8d111dfe02139882ded">&#9670;&nbsp;</a></span>cosLookUp()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::cosLookUp </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Query the cos lookup table </p>
<div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;{</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;  <span class="keywordtype">int</span> cell_idx = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (pcl_lrintf ( (<span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (lookup_table_size-1)) * fabsf (value) / (2.0f * <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (M_PI))));</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;  <span class="keywordflow">return</span> (cos_lookup_table[cell_idx]);</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a46cb318d3d6f1cf6aace8d2ed10ed7fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46cb318d3d6f1cf6aace8d2ed10ed7fa">&#9670;&nbsp;</a></span>createEmpty() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::createEmpty </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angular_resolution</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>sensor_pose</em> = <code>Eigen::Affine3f::Identity()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">RangeImage::CoordinateFrame&#160;</td>
          <td class="paramname"><em>coordinate_frame</em> = <code>CAMERA_FRAME</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angle_width</em> = <code>pcl::deg2rad(360.0f)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angle_height</em> = <code>pcl::deg2rad(180.0f)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create an empty depth image (filled with unobserved points) </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">angular_resolution</td><td>the angle (in radians) between each sample in the depth image </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sensor_pose</td><td>an affine matrix defining the pose of the sensor (defaults to Eigen::Affine3f::Identity () ) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">coordinate_frame</td><td>the coordinate frame (defaults to CAMERA_FRAME) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">angle_width</td><td>an angle (in radians) defining the horizontal bounds of the sensor (defaults to 2*pi (360deg)) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">angle_height</td><td>an angle (in radians) defining the vertical bounds of the sensor (defaults to pi (180deg)) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="afa9ecf76f97e99ede5b71bb7da6c1715"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa9ecf76f97e99ede5b71bb7da6c1715">&#9670;&nbsp;</a></span>createEmpty() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::createEmpty </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angular_resolution_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angular_resolution_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>sensor_pose</em> = <code>Eigen::Affine3f::Identity()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">RangeImage::CoordinateFrame&#160;</td>
          <td class="paramname"><em>coordinate_frame</em> = <code>CAMERA_FRAME</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angle_width</em> = <code>pcl::deg2rad(360.0f)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angle_height</em> = <code>pcl::deg2rad(180.0f)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create an empty depth image (filled with unobserved points) </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">angular_resolution_x</td><td>the angular difference (in radians) between the individual pixels in the image in the x-direction </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">angular_resolution_y</td><td>the angular difference (in radians) between the individual pixels in the image in the y-direction </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sensor_pose</td><td>an affine matrix defining the pose of the sensor (defaults to Eigen::Affine3f::Identity () ) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">coordinate_frame</td><td>the coordinate frame (defaults to CAMERA_FRAME) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">angle_width</td><td>an angle (in radians) defining the horizontal bounds of the sensor (defaults to 2*pi (360deg)) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">angle_height</td><td>an angle (in radians) defining the vertical bounds of the sensor (defaults to pi (180deg)) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a82f6a143de2d73a0ad9fea6c527a2efb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82f6a143de2d73a0ad9fea6c527a2efb">&#9670;&nbsp;</a></span>createFromPointCloud() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointCloudType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::createFromPointCloud </td>
          <td>(</td>
          <td class="paramtype">const PointCloudType &amp;&#160;</td>
          <td class="paramname"><em>point_cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angular_resolution</em> = <code>pcl::deg2rad&#160;(0.5f)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>max_angle_width</em> = <code>pcl::deg2rad&#160;(360.0f)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>max_angle_height</em> = <code>pcl::deg2rad&#160;(180.0f)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>sensor_pose</em> = <code>Eigen::Affine3f::Identity&#160;()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">RangeImage::CoordinateFrame&#160;</td>
          <td class="paramname"><em>coordinate_frame</em> = <code>CAMERA_FRAME</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>noise_level</em> = <code>0.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>min_range</em> = <code>0.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>border_size</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create the depth image from a point cloud </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">point_cloud</td><td>the input point cloud </td></tr>
    <tr><td class="paramname">angular_resolution</td><td>the angular difference (in radians) between the individual pixels in the image </td></tr>
    <tr><td class="paramname">max_angle_width</td><td>an angle (in radians) defining the horizontal bounds of the sensor </td></tr>
    <tr><td class="paramname">max_angle_height</td><td>an angle (in radians) defining the vertical bounds of the sensor </td></tr>
    <tr><td class="paramname">sensor_pose</td><td>an affine matrix defining the pose of the sensor (defaults to Eigen::Affine3f::Identity () ) </td></tr>
    <tr><td class="paramname">coordinate_frame</td><td>the coordinate frame (defaults to CAMERA_FRAME) </td></tr>
    <tr><td class="paramname">noise_level</td><td>- The distance in meters inside of which the z-buffer will not use the minimum, but the mean of the points. If 0.0 it is equivalent to a normal z-buffer and will always take the minimum per cell. </td></tr>
    <tr><td class="paramname">min_range</td><td>the minimum visible range (defaults to 0) </td></tr>
    <tr><td class="paramname">border_size</td><td>the border size (defaults to 0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;{</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a82f6a143de2d73a0ad9fea6c527a2efb">createFromPointCloud</a> (point_cloud, angular_resolution, angular_resolution, max_angle_width, max_angle_height,</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                        sensor_pose, coordinate_frame, noise_level, min_range, border_size);</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a82f6a143de2d73a0ad9fea6c527a2efb"><div class="ttname"><a href="classpcl_1_1_range_image.html#a82f6a143de2d73a0ad9fea6c527a2efb">pcl::RangeImage::createFromPointCloud</a></div><div class="ttdeci">void createFromPointCloud(const PointCloudType &amp;point_cloud, float angular_resolution=pcl::deg2rad(0.5f), float max_angle_width=pcl::deg2rad(360.0f), float max_angle_height=pcl::deg2rad(180.0f), const Eigen::Affine3f &amp;sensor_pose=Eigen::Affine3f::Identity(), CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f, float min_range=0.0f, int border_size=0)</div><div class="ttdoc">Create the depth image from a point cloud</div><div class="ttdef"><b>Definition:</b> range_image.hpp:94</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ae3a8a2def6dde7446b9fc456f7992aa9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3a8a2def6dde7446b9fc456f7992aa9">&#9670;&nbsp;</a></span>createFromPointCloud() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointCloudType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::createFromPointCloud </td>
          <td>(</td>
          <td class="paramtype">const PointCloudType &amp;&#160;</td>
          <td class="paramname"><em>point_cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angular_resolution_x</em> = <code>pcl::deg2rad&#160;(0.5f)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angular_resolution_y</em> = <code>pcl::deg2rad&#160;(0.5f)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>max_angle_width</em> = <code>pcl::deg2rad&#160;(360.0f)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>max_angle_height</em> = <code>pcl::deg2rad&#160;(180.0f)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>sensor_pose</em> = <code>Eigen::Affine3f::Identity&#160;()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">RangeImage::CoordinateFrame&#160;</td>
          <td class="paramname"><em>coordinate_frame</em> = <code>CAMERA_FRAME</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>noise_level</em> = <code>0.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>min_range</em> = <code>0.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>border_size</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create the depth image from a point cloud </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">point_cloud</td><td>the input point cloud </td></tr>
    <tr><td class="paramname">angular_resolution_x</td><td>the angular difference (in radians) between the individual pixels in the image in the x-direction </td></tr>
    <tr><td class="paramname">angular_resolution_y</td><td>the angular difference (in radians) between the individual pixels in the image in the y-direction </td></tr>
    <tr><td class="paramname">max_angle_width</td><td>an angle (in radians) defining the horizontal bounds of the sensor </td></tr>
    <tr><td class="paramname">max_angle_height</td><td>an angle (in radians) defining the vertical bounds of the sensor </td></tr>
    <tr><td class="paramname">sensor_pose</td><td>an affine matrix defining the pose of the sensor (defaults to Eigen::Affine3f::Identity () ) </td></tr>
    <tr><td class="paramname">coordinate_frame</td><td>the coordinate frame (defaults to CAMERA_FRAME) </td></tr>
    <tr><td class="paramname">noise_level</td><td>- The distance in meters inside of which the z-buffer will not use the minimum, but the mean of the points. If 0.0 it is equivalent to a normal z-buffer and will always take the minimum per cell. </td></tr>
    <tr><td class="paramname">min_range</td><td>the minimum visible range (defaults to 0) </td></tr>
    <tr><td class="paramname">border_size</td><td>the border size (defaults to 0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;{</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a2720450161caef9a2992b0ac943ab2b7">setAngularResolution</a> (angular_resolution_x, angular_resolution_y);</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;  </div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;  <a class="code" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a>  = <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span> (pcl_lrint (floor (max_angle_width*<a class="code" href="classpcl_1_1_range_image.html#adbb1466576e6c2d08e3065b67da0b250">angular_resolution_x_reciprocal_</a>)));</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;  <a class="code" href="classpcl_1_1_point_cloud.html#a4f34b45220c57f96607513ffad0d9582">height</a> = <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span> (pcl_lrint (floor (max_angle_height*<a class="code" href="classpcl_1_1_range_image.html#a843659230146a43690ee4d4fb53fcc92">angular_resolution_y_reciprocal_</a>)));</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;  </div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;  <span class="keywordtype">int</span> full_width  = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (pcl_lrint (floor (<a class="code" href="group__common.html#ga25b0ce695e2a10abb0130bcb5cf90eb6">pcl::deg2rad</a> (360.0f)*<a class="code" href="classpcl_1_1_range_image.html#adbb1466576e6c2d08e3065b67da0b250">angular_resolution_x_reciprocal_</a>))),</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;      full_height = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (pcl_lrint (floor (<a class="code" href="group__common.html#ga25b0ce695e2a10abb0130bcb5cf90eb6">pcl::deg2rad</a> (180.0f)*<a class="code" href="classpcl_1_1_range_image.html#a843659230146a43690ee4d4fb53fcc92">angular_resolution_y_reciprocal_</a>)));</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;  image_offset_x_ = (full_width -<span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (<a class="code" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a>) )/2;</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a1518af9f1c9eb6ac259be92824842e23">image_offset_y_</a> = (full_height-<span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (<a class="code" href="classpcl_1_1_point_cloud.html#a4f34b45220c57f96607513ffad0d9582">height</a>))/2;</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;  <a class="code" href="classpcl_1_1_point_cloud.html#a3ca88d8ebf6f4f35acbc31cdfb38aa94">is_dense</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;  </div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#af5c0908bfbe060fdb517728fe56b2c55">getCoordinateFrameTransformation</a> (coordinate_frame, <a class="code" href="classpcl_1_1_range_image.html#a31c36f147403c0f64e1c3a386b30e229">to_world_system_</a>);</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a31c36f147403c0f64e1c3a386b30e229">to_world_system_</a> = sensor_pose * <a class="code" href="classpcl_1_1_range_image.html#a31c36f147403c0f64e1c3a386b30e229">to_world_system_</a>;</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;  </div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#ada8177479f0e95999a66294db4c0c3eb">to_range_image_system_</a> = <a class="code" href="classpcl_1_1_range_image.html#a31c36f147403c0f64e1c3a386b30e229">to_world_system_</a>.inverse (Eigen::Isometry);</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;  <span class="comment">//std::cout &lt;&lt; &quot;to_world_system_ is\n&quot;&lt;&lt;to_world_system_&lt;&lt;&quot;\nand to_range_image_system_ is\n&quot;&lt;&lt;to_range_image_system_&lt;&lt;&quot;\n\n&quot;;</span></div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;  </div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size = <a class="code" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a>*<a class="code" href="classpcl_1_1_point_cloud.html#a4f34b45220c57f96607513ffad0d9582">height</a>;</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;  <a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>.clear ();</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;  <a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>.resize (size, <a class="code" href="classpcl_1_1_range_image.html#a51bf019906a3256038561354d6b95885">unobserved_point</a>);</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;  </div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;  <span class="keywordtype">int</span> top=<a class="code" href="classpcl_1_1_point_cloud.html#a4f34b45220c57f96607513ffad0d9582">height</a>, right=-1, bottom=-1, left=<a class="code" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a>;</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a56655a55b4c83c7ce301ca0f020759b4">doZBuffer</a> (point_cloud, noise_level, min_range, top, right, bottom, left);</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;  </div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a20f223d93080e9ce32122f90a265f7c4">cropImage</a> (border_size, top, right, bottom, left);</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;  </div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a08d6ccfef80c3788102327df618a3fbf">recalculate3DPointPositions</a> ();</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html_a2185a6453f8ad905d7bdf7b45754a160"><div class="ttname"><a href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">pcl::PointCloud&lt; PointWithRange &gt;::width</a></div><div class="ttdeci">uint32_t width</div><div class="ttdoc">The point cloud width (if organized as an image-structure).</div><div class="ttdef"><b>Definition:</b> point_cloud.h:413</div></div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html_a3ca88d8ebf6f4f35acbc31cdfb38aa94"><div class="ttname"><a href="classpcl_1_1_point_cloud.html#a3ca88d8ebf6f4f35acbc31cdfb38aa94">pcl::PointCloud&lt; PointWithRange &gt;::is_dense</a></div><div class="ttdeci">bool is_dense</div><div class="ttdoc">True if no points are invalid (e.g., have NaN or Inf values).</div><div class="ttdef"><b>Definition:</b> point_cloud.h:418</div></div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html_a4f34b45220c57f96607513ffad0d9582"><div class="ttname"><a href="classpcl_1_1_point_cloud.html#a4f34b45220c57f96607513ffad0d9582">pcl::PointCloud&lt; PointWithRange &gt;::height</a></div><div class="ttdeci">uint32_t height</div><div class="ttdoc">The point cloud height (if organized as an image-structure).</div><div class="ttdef"><b>Definition:</b> point_cloud.h:415</div></div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html_af16a62638198313b9c093127c492c884"><div class="ttname"><a href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">pcl::PointCloud&lt; PointWithRange &gt;::points</a></div><div class="ttdeci">std::vector&lt; PointWithRange, Eigen::aligned_allocator&lt; PointWithRange &gt; &gt; points</div><div class="ttdoc">The point data.</div><div class="ttdef"><b>Definition:</b> point_cloud.h:410</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a08d6ccfef80c3788102327df618a3fbf"><div class="ttname"><a href="classpcl_1_1_range_image.html#a08d6ccfef80c3788102327df618a3fbf">pcl::RangeImage::recalculate3DPointPositions</a></div><div class="ttdeci">PCL_EXPORTS void recalculate3DPointPositions()</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a1518af9f1c9eb6ac259be92824842e23"><div class="ttname"><a href="classpcl_1_1_range_image.html#a1518af9f1c9eb6ac259be92824842e23">pcl::RangeImage::image_offset_y_</a></div><div class="ttdeci">int image_offset_y_</div><div class="ttdef"><b>Definition:</b> range_image.h:778</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a20f223d93080e9ce32122f90a265f7c4"><div class="ttname"><a href="classpcl_1_1_range_image.html#a20f223d93080e9ce32122f90a265f7c4">pcl::RangeImage::cropImage</a></div><div class="ttdeci">PCL_EXPORTS void cropImage(int border_size=0, int top=-1, int right=-1, int bottom=-1, int left=-1)</div><div class="ttdoc">Cut the range image to the minimal size so that it still contains all actual range readings.</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a2720450161caef9a2992b0ac943ab2b7"><div class="ttname"><a href="classpcl_1_1_range_image.html#a2720450161caef9a2992b0ac943ab2b7">pcl::RangeImage::setAngularResolution</a></div><div class="ttdeci">void setAngularResolution(float angular_resolution)</div><div class="ttdoc">Set the angular resolution of the range image</div><div class="ttdef"><b>Definition:</b> range_image.hpp:1188</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a56655a55b4c83c7ce301ca0f020759b4"><div class="ttname"><a href="classpcl_1_1_range_image.html#a56655a55b4c83c7ce301ca0f020759b4">pcl::RangeImage::doZBuffer</a></div><div class="ttdeci">void doZBuffer(const PointCloudType &amp;point_cloud, float noise_level, float min_range, int &amp;top, int &amp;right, int &amp;bottom, int &amp;left)</div><div class="ttdoc">Integrate the given point cloud into the current range image using a z-buffer</div><div class="ttdef"><b>Definition:</b> range_image.hpp:230</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a843659230146a43690ee4d4fb53fcc92"><div class="ttname"><a href="classpcl_1_1_range_image.html#a843659230146a43690ee4d4fb53fcc92">pcl::RangeImage::angular_resolution_y_reciprocal_</a></div><div class="ttdeci">float angular_resolution_y_reciprocal_</div><div class="ttdef"><b>Definition:</b> range_image.h:776</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_ada8177479f0e95999a66294db4c0c3eb"><div class="ttname"><a href="classpcl_1_1_range_image.html#ada8177479f0e95999a66294db4c0c3eb">pcl::RangeImage::to_range_image_system_</a></div><div class="ttdeci">Eigen::Affine3f to_range_image_system_</div><div class="ttdef"><b>Definition:</b> range_image.h:770</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_adbb1466576e6c2d08e3065b67da0b250"><div class="ttname"><a href="classpcl_1_1_range_image.html#adbb1466576e6c2d08e3065b67da0b250">pcl::RangeImage::angular_resolution_x_reciprocal_</a></div><div class="ttdeci">float angular_resolution_x_reciprocal_</div><div class="ttdef"><b>Definition:</b> range_image.h:774</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_af5c0908bfbe060fdb517728fe56b2c55"><div class="ttname"><a href="classpcl_1_1_range_image.html#af5c0908bfbe060fdb517728fe56b2c55">pcl::RangeImage::getCoordinateFrameTransformation</a></div><div class="ttdeci">static PCL_EXPORTS void getCoordinateFrameTransformation(RangeImage::CoordinateFrame coordinate_frame, Eigen::Affine3f &amp;transformation)</div><div class="ttdoc">Get the transformation that transforms the given coordinate frame into CAMERA_FRAME</div></div>
<div class="ttc" id="agroup__common_html_ga25b0ce695e2a10abb0130bcb5cf90eb6"><div class="ttname"><a href="group__common.html#ga25b0ce695e2a10abb0130bcb5cf90eb6">pcl::deg2rad</a></div><div class="ttdeci">float deg2rad(float alpha)</div><div class="ttdoc">Convert an angle from degrees to radians</div><div class="ttdef"><b>Definition:</b> angles.hpp:67</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="afbb553405d9b1df2b10b08c98c052250"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afbb553405d9b1df2b10b08c98c052250">&#9670;&nbsp;</a></span>createFromPointCloudWithKnownSize() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointCloudType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::createFromPointCloudWithKnownSize </td>
          <td>(</td>
          <td class="paramtype">const PointCloudType &amp;&#160;</td>
          <td class="paramname"><em>point_cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angular_resolution</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point_cloud_center</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>point_cloud_radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>sensor_pose</em> = <code>Eigen::Affine3f::Identity&#160;()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">RangeImage::CoordinateFrame&#160;</td>
          <td class="paramname"><em>coordinate_frame</em> = <code>CAMERA_FRAME</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>noise_level</em> = <code>0.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>min_range</em> = <code>0.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>border_size</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create the depth image from a point cloud, getting a hint about the size of the scene for faster calculation. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">point_cloud</td><td>the input point cloud </td></tr>
    <tr><td class="paramname">angular_resolution</td><td>the angle (in radians) between each sample in the depth image </td></tr>
    <tr><td class="paramname">point_cloud_center</td><td>the center of bounding sphere </td></tr>
    <tr><td class="paramname">point_cloud_radius</td><td>the radius of the bounding sphere </td></tr>
    <tr><td class="paramname">sensor_pose</td><td>an affine matrix defining the pose of the sensor (defaults to Eigen::Affine3f::Identity () ) </td></tr>
    <tr><td class="paramname">coordinate_frame</td><td>the coordinate frame (defaults to CAMERA_FRAME) </td></tr>
    <tr><td class="paramname">noise_level</td><td>- The distance in meters inside of which the z-buffer will not use the minimum, but the mean of the points. If 0.0 it is equivalent to a normal z-buffer and will always take the minimum per cell. </td></tr>
    <tr><td class="paramname">min_range</td><td>the minimum visible range (defaults to 0) </td></tr>
    <tr><td class="paramname">border_size</td><td>the border size (defaults to 0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;{</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#afbb553405d9b1df2b10b08c98c052250">createFromPointCloudWithKnownSize</a> (point_cloud, angular_resolution, angular_resolution, point_cloud_center, point_cloud_radius,</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;                                     sensor_pose, coordinate_frame, noise_level, min_range, border_size);</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_afbb553405d9b1df2b10b08c98c052250"><div class="ttname"><a href="classpcl_1_1_range_image.html#afbb553405d9b1df2b10b08c98c052250">pcl::RangeImage::createFromPointCloudWithKnownSize</a></div><div class="ttdeci">void createFromPointCloudWithKnownSize(const PointCloudType &amp;point_cloud, float angular_resolution, const Eigen::Vector3f &amp;point_cloud_center, float point_cloud_radius, const Eigen::Affine3f &amp;sensor_pose=Eigen::Affine3f::Identity(), CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f, float min_range=0.0f, int border_size=0)</div><div class="ttdoc">Create the depth image from a point cloud, getting a hint about the size of the scene for faster calc...</div><div class="ttdef"><b>Definition:</b> range_image.hpp:142</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ac52b84843090cf756a37c596b5e772d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac52b84843090cf756a37c596b5e772d2">&#9670;&nbsp;</a></span>createFromPointCloudWithKnownSize() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointCloudType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::createFromPointCloudWithKnownSize </td>
          <td>(</td>
          <td class="paramtype">const PointCloudType &amp;&#160;</td>
          <td class="paramname"><em>point_cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angular_resolution_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angular_resolution_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point_cloud_center</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>point_cloud_radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>sensor_pose</em> = <code>Eigen::Affine3f::Identity&#160;()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">RangeImage::CoordinateFrame&#160;</td>
          <td class="paramname"><em>coordinate_frame</em> = <code>CAMERA_FRAME</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>noise_level</em> = <code>0.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>min_range</em> = <code>0.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>border_size</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create the depth image from a point cloud, getting a hint about the size of the scene for faster calculation. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">point_cloud</td><td>the input point cloud </td></tr>
    <tr><td class="paramname">angular_resolution_x</td><td>the angular difference (in radians) between the individual pixels in the image in the x-direction </td></tr>
    <tr><td class="paramname">angular_resolution_y</td><td>the angular difference (in radians) between the individual pixels in the image in the y-direction </td></tr>
    <tr><td class="paramname">point_cloud_center</td><td>the center of bounding sphere </td></tr>
    <tr><td class="paramname">point_cloud_radius</td><td>the radius of the bounding sphere </td></tr>
    <tr><td class="paramname">sensor_pose</td><td>an affine matrix defining the pose of the sensor (defaults to Eigen::Affine3f::Identity () ) </td></tr>
    <tr><td class="paramname">coordinate_frame</td><td>the coordinate frame (defaults to CAMERA_FRAME) </td></tr>
    <tr><td class="paramname">noise_level</td><td>- The distance in meters inside of which the z-buffer will not use the minimum, but the mean of the points. If 0.0 it is equivalent to a normal z-buffer and will always take the minimum per cell. </td></tr>
    <tr><td class="paramname">min_range</td><td>the minimum visible range (defaults to 0) </td></tr>
    <tr><td class="paramname">border_size</td><td>the border size (defaults to 0) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;{</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;  <span class="comment">//MEASURE_FUNCTION_TIME;</span></div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;  </div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;  <span class="comment">//std::cout &lt;&lt; &quot;Starting to create range image from &quot;&lt;&lt;point_cloud.points.size ()&lt;&lt;&quot; points.\n&quot;;</span></div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;  </div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;  <span class="comment">// If the sensor pose is inside of the sphere we have to calculate the image the normal way</span></div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;  <span class="keywordflow">if</span> ((point_cloud_center-sensor_pose.translation()).norm() &lt;= point_cloud_radius) {</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <a class="code" href="classpcl_1_1_range_image.html#a82f6a143de2d73a0ad9fea6c527a2efb">createFromPointCloud</a> (point_cloud, angular_resolution_x, angular_resolution_y,</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                          <a class="code" href="group__common.html#ga25b0ce695e2a10abb0130bcb5cf90eb6">pcl::deg2rad</a> (360.0f), <a class="code" href="group__common.html#ga25b0ce695e2a10abb0130bcb5cf90eb6">pcl::deg2rad</a> (180.0f),</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                          sensor_pose, coordinate_frame, noise_level, min_range, border_size);</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;  }</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;  </div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a2720450161caef9a2992b0ac943ab2b7">setAngularResolution</a> (angular_resolution_x, angular_resolution_y);</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;  </div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#af5c0908bfbe060fdb517728fe56b2c55">getCoordinateFrameTransformation</a> (coordinate_frame, <a class="code" href="classpcl_1_1_range_image.html#a31c36f147403c0f64e1c3a386b30e229">to_world_system_</a>);</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a31c36f147403c0f64e1c3a386b30e229">to_world_system_</a> = sensor_pose * <a class="code" href="classpcl_1_1_range_image.html#a31c36f147403c0f64e1c3a386b30e229">to_world_system_</a>;</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#ada8177479f0e95999a66294db4c0c3eb">to_range_image_system_</a> = <a class="code" href="classpcl_1_1_range_image.html#a31c36f147403c0f64e1c3a386b30e229">to_world_system_</a>.inverse (Eigen::Isometry);</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;  </div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;  <span class="keywordtype">float</span> max_angle_size = <a class="code" href="classpcl_1_1_range_image.html#ac504743608967dcd142dc4249b82ea5a">getMaxAngleSize</a> (sensor_pose, point_cloud_center, point_cloud_radius);</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;  <span class="keywordtype">int</span> pixel_radius_x = pcl_lrint (ceil (0.5f*max_angle_size*<a class="code" href="classpcl_1_1_range_image.html#adbb1466576e6c2d08e3065b67da0b250">angular_resolution_x_reciprocal_</a>)),</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;      pixel_radius_y = pcl_lrint (ceil (0.5f*max_angle_size*<a class="code" href="classpcl_1_1_range_image.html#a843659230146a43690ee4d4fb53fcc92">angular_resolution_y_reciprocal_</a>));</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;  <a class="code" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a>  = 2*pixel_radius_x;</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;  <a class="code" href="classpcl_1_1_point_cloud.html#a4f34b45220c57f96607513ffad0d9582">height</a> = 2*pixel_radius_y;</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;  <a class="code" href="classpcl_1_1_point_cloud.html#a3ca88d8ebf6f4f35acbc31cdfb38aa94">is_dense</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;  </div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;  image_offset_x_ = <a class="code" href="classpcl_1_1_range_image.html#a1518af9f1c9eb6ac259be92824842e23">image_offset_y_</a> = 0;  <span class="comment">// temporary values for getImagePoint</span></div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;  <span class="keywordtype">int</span> center_pixel_x, center_pixel_y;</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a7a53bfc9f4a3365ee8e62513ae37eb5c">getImagePoint</a> (point_cloud_center, center_pixel_x, center_pixel_y);</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;  image_offset_x_ = (std::max) (0, center_pixel_x-pixel_radius_x);</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a1518af9f1c9eb6ac259be92824842e23">image_offset_y_</a> = (std::max) (0, center_pixel_y-pixel_radius_y);</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160; </div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;  <a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>.clear ();</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;  <a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>.resize (<a class="code" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a>*<a class="code" href="classpcl_1_1_point_cloud.html#a4f34b45220c57f96607513ffad0d9582">height</a>, <a class="code" href="classpcl_1_1_range_image.html#a51bf019906a3256038561354d6b95885">unobserved_point</a>);</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;  </div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;  <span class="keywordtype">int</span> top=<a class="code" href="classpcl_1_1_point_cloud.html#a4f34b45220c57f96607513ffad0d9582">height</a>, right=-1, bottom=-1, left=<a class="code" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a>;</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a56655a55b4c83c7ce301ca0f020759b4">doZBuffer</a> (point_cloud, noise_level, min_range, top, right, bottom, left);</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;  </div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a20f223d93080e9ce32122f90a265f7c4">cropImage</a> (border_size, top, right, bottom, left);</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;  </div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a08d6ccfef80c3788102327df618a3fbf">recalculate3DPointPositions</a> ();</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_ac504743608967dcd142dc4249b82ea5a"><div class="ttname"><a href="classpcl_1_1_range_image.html#ac504743608967dcd142dc4249b82ea5a">pcl::RangeImage::getMaxAngleSize</a></div><div class="ttdeci">static float getMaxAngleSize(const Eigen::Affine3f &amp;viewer_pose, const Eigen::Vector3f &amp;center, float radius)</div><div class="ttdoc">Get the size of a certain area when seen from the given pose</div><div class="ttdef"><b>Definition:</b> range_image.hpp:788</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a91cb7406e0e57923a7f5d533ea578c0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91cb7406e0e57923a7f5d533ea578c0f">&#9670;&nbsp;</a></span>createFromPointCloudWithViewpoints() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointCloudTypeWithViewpoints &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::createFromPointCloudWithViewpoints </td>
          <td>(</td>
          <td class="paramtype">const PointCloudTypeWithViewpoints &amp;&#160;</td>
          <td class="paramname"><em>point_cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angular_resolution</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>max_angle_width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>max_angle_height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">RangeImage::CoordinateFrame&#160;</td>
          <td class="paramname"><em>coordinate_frame</em> = <code>CAMERA_FRAME</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>noise_level</em> = <code>0.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>min_range</em> = <code>0.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>border_size</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create the depth image from a point cloud, using the average viewpoint of the points (vp_x,vp_y,vp_z in the point type) in the point cloud as sensor pose (assuming a rotation of (0,0,0)). </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">point_cloud</td><td>the input point cloud </td></tr>
    <tr><td class="paramname">angular_resolution</td><td>the angle (in radians) between each sample in the depth image </td></tr>
    <tr><td class="paramname">max_angle_width</td><td>an angle (in radians) defining the horizontal bounds of the sensor </td></tr>
    <tr><td class="paramname">max_angle_height</td><td>an angle (in radians) defining the vertical bounds of the sensor </td></tr>
    <tr><td class="paramname">coordinate_frame</td><td>the coordinate frame (defaults to CAMERA_FRAME) </td></tr>
    <tr><td class="paramname">noise_level</td><td>- The distance in meters inside of which the z-buffer will not use the minimum, but the mean of the points. If 0.0 it is equivalent to a normal z-buffer and will always take the minimum per cell. </td></tr>
    <tr><td class="paramname">min_range</td><td>the minimum visible range (defaults to 0) </td></tr>
    <tr><td class="paramname">border_size</td><td>the border size (defaults to 0) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>If wrong_coordinate_system is true, the sensor pose will be rotated to change from a coordinate frame with x to the front, y to the left and z to the top to the coordinate frame we use here (x to the right, y to the bottom and z to the front) </dd></dl>
<div class="fragment"><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;{</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a91cb7406e0e57923a7f5d533ea578c0f">createFromPointCloudWithViewpoints</a> (point_cloud, angular_resolution, angular_resolution,</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;                                      max_angle_width, max_angle_height, coordinate_frame,</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;                                      noise_level, min_range, border_size);</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a91cb7406e0e57923a7f5d533ea578c0f"><div class="ttname"><a href="classpcl_1_1_range_image.html#a91cb7406e0e57923a7f5d533ea578c0f">pcl::RangeImage::createFromPointCloudWithViewpoints</a></div><div class="ttdeci">void createFromPointCloudWithViewpoints(const PointCloudTypeWithViewpoints &amp;point_cloud, float angular_resolution, float max_angle_width, float max_angle_height, CoordinateFrame coordinate_frame=CAMERA_FRAME, float noise_level=0.0f, float min_range=0.0f, int border_size=0)</div><div class="ttdoc">Create the depth image from a point cloud, using the average viewpoint of the points (vp_x,...</div><div class="ttdef"><b>Definition:</b> range_image.hpp:203</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a66de72c9511e694d41bd7a48c043f541"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66de72c9511e694d41bd7a48c043f541">&#9670;&nbsp;</a></span>createFromPointCloudWithViewpoints() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointCloudTypeWithViewpoints &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::createFromPointCloudWithViewpoints </td>
          <td>(</td>
          <td class="paramtype">const PointCloudTypeWithViewpoints &amp;&#160;</td>
          <td class="paramname"><em>point_cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angular_resolution_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angular_resolution_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>max_angle_width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>max_angle_height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">RangeImage::CoordinateFrame&#160;</td>
          <td class="paramname"><em>coordinate_frame</em> = <code>CAMERA_FRAME</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>noise_level</em> = <code>0.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>min_range</em> = <code>0.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>border_size</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create the depth image from a point cloud, using the average viewpoint of the points (vp_x,vp_y,vp_z in the point type) in the point cloud as sensor pose (assuming a rotation of (0,0,0)). </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">point_cloud</td><td>the input point cloud </td></tr>
    <tr><td class="paramname">angular_resolution_x</td><td>the angular difference (in radians) between the individual pixels in the image in the x-direction </td></tr>
    <tr><td class="paramname">angular_resolution_y</td><td>the angular difference (in radians) between the individual pixels in the image in the y-direction </td></tr>
    <tr><td class="paramname">max_angle_width</td><td>an angle (in radians) defining the horizontal bounds of the sensor </td></tr>
    <tr><td class="paramname">max_angle_height</td><td>an angle (in radians) defining the vertical bounds of the sensor </td></tr>
    <tr><td class="paramname">coordinate_frame</td><td>the coordinate frame (defaults to CAMERA_FRAME) </td></tr>
    <tr><td class="paramname">noise_level</td><td>- The distance in meters inside of which the z-buffer will not use the minimum, but the mean of the points. If 0.0 it is equivalent to a normal z-buffer and will always take the minimum per cell. </td></tr>
    <tr><td class="paramname">min_range</td><td>the minimum visible range (defaults to 0) </td></tr>
    <tr><td class="paramname">border_size</td><td>the border size (defaults to 0) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>If wrong_coordinate_system is true, the sensor pose will be rotated to change from a coordinate frame with x to the front, y to the left and z to the top to the coordinate frame we use here (x to the right, y to the bottom and z to the front) </dd></dl>
<div class="fragment"><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;{</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;  Eigen::Vector3f average_viewpoint = <a class="code" href="classpcl_1_1_range_image.html#a49c425d518d92def18300cd029ae1855">getAverageViewPoint</a> (point_cloud);</div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;  Eigen::Affine3f sensor_pose = <span class="keyword">static_cast&lt;</span>Eigen::Affine3f<span class="keyword">&gt;</span> (Eigen::Translation3f (average_viewpoint));</div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a82f6a143de2d73a0ad9fea6c527a2efb">createFromPointCloud</a> (point_cloud, angular_resolution_x, angular_resolution_y, max_angle_width, max_angle_height,</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;                        sensor_pose, coordinate_frame, noise_level, min_range, border_size);</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a49c425d518d92def18300cd029ae1855"><div class="ttname"><a href="classpcl_1_1_range_image.html#a49c425d518d92def18300cd029ae1855">pcl::RangeImage::getAverageViewPoint</a></div><div class="ttdeci">static Eigen::Vector3f getAverageViewPoint(const PointCloudTypeWithViewpoints &amp;point_cloud)</div><div class="ttdoc">Get the average viewpoint of a point cloud where each point carries viewpoint information as vp_x,...</div><div class="ttdef"><b>Definition:</b> range_image.hpp:1125</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ae74c34594e1417fb702d92ff51f2b495"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae74c34594e1417fb702d92ff51f2b495">&#9670;&nbsp;</a></span>createLookupTables()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void pcl::RangeImage::createLookupTables </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Create lookup tables for trigonometric functions </p>

</div>
</div>
<a id="a20f223d93080e9ce32122f90a265f7c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20f223d93080e9ce32122f90a265f7c4">&#9670;&nbsp;</a></span>cropImage()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PCL_EXPORTS void pcl::RangeImage::cropImage </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>border_size</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>top</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>right</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bottom</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>left</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Cut the range image to the minimal size so that it still contains all actual range readings. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">border_size</td><td>allows increase from the minimal size by the specified number of pixels (defaults to 0) </td></tr>
    <tr><td class="paramname">top</td><td>if positive, this value overrides the position of the top edge (defaults to -1) </td></tr>
    <tr><td class="paramname">right</td><td>if positive, this value overrides the position of the right edge (defaults to -1) </td></tr>
    <tr><td class="paramname">bottom</td><td>if positive, this value overrides the position of the bottom edge (defaults to -1) </td></tr>
    <tr><td class="paramname">left</td><td>if positive, this value overrides the position of the left edge (defaults to -1) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a56655a55b4c83c7ce301ca0f020759b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56655a55b4c83c7ce301ca0f020759b4">&#9670;&nbsp;</a></span>doZBuffer()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointCloudType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::doZBuffer </td>
          <td>(</td>
          <td class="paramtype">const PointCloudType &amp;&#160;</td>
          <td class="paramname"><em>point_cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>noise_level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>min_range</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>top</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>right</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>bottom</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>left</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Integrate the given point cloud into the current range image using a z-buffer </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">point_cloud</td><td>the input point cloud </td></tr>
    <tr><td class="paramname">noise_level</td><td>- The distance in meters inside of which the z-buffer will not use the minimum, but the mean of the points. If 0.0 it is equivalent to a normal z-buffer and will always take the minimum per cell. </td></tr>
    <tr><td class="paramname">min_range</td><td>the minimum visible range </td></tr>
    <tr><td class="paramname">top</td><td>returns the minimum y pixel position in the image where a point was added </td></tr>
    <tr><td class="paramname">right</td><td>returns the maximum x pixel position in the image where a point was added </td></tr>
    <tr><td class="paramname">bottom</td><td>returns the maximum y pixel position in the image where a point was added </td></tr>
    <tr><td class="paramname">top</td><td>returns the minimum y position in the image where a point was added </td></tr>
    <tr><td class="paramname">left</td><td>returns the minimum x pixel position in the image where a point was added </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;{</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;  <span class="keyword">typedef</span> <span class="keyword">typename</span> PointCloudType::PointType PointType2;</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;  <span class="keyword">const</span> <span class="keyword">typename</span> pcl::PointCloud&lt;PointType2&gt;::VectorType &amp;points2 = point_cloud.points;</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;  </div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size = <a class="code" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a>*<a class="code" href="classpcl_1_1_point_cloud.html#a4f34b45220c57f96607513ffad0d9582">height</a>;</div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;  <span class="keywordtype">int</span>* counters = <span class="keyword">new</span> <span class="keywordtype">int</span>[size];</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;  ERASE_ARRAY (counters, size);</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;  </div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;  top=<a class="code" href="classpcl_1_1_point_cloud.html#a4f34b45220c57f96607513ffad0d9582">height</a>; right=-1; bottom=-1; left=<a class="code" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a>;</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;  </div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;  <span class="keywordtype">float</span> x_real, y_real, range_of_current_point;</div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;  <span class="keywordtype">int</span> x, y;</div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;  <span class="keywordflow">for</span> (<span class="keyword">typename</span> pcl::PointCloud&lt;PointType2&gt;::VectorType::const_iterator it=points2.begin (); it!=points2.end (); ++it)</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;  {</div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <span class="keywordflow">if</span> (!isFinite (*it))  <span class="comment">// Check for NAN etc</span></div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;      <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    Vector3fMapConst current_point = it-&gt;getVector3fMap ();</div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    </div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    this-&gt;<a class="code" href="classpcl_1_1_range_image.html#a7a53bfc9f4a3365ee8e62513ae37eb5c">getImagePoint</a> (current_point, x_real, y_real, range_of_current_point);</div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    this-&gt;<a class="code" href="classpcl_1_1_range_image.html#a86174b766aa77898e0d49ef11f4613b1">real2DToInt2D</a> (x_real, y_real, x, y);</div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    </div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    <span class="keywordflow">if</span> (range_of_current_point &lt; min_range|| !<a class="code" href="classpcl_1_1_range_image.html#a824a6bb27b43a174da775a656b81a483">isInImage</a> (x, y))</div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;      <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    <span class="comment">//std::cout &lt;&lt; &quot; (&quot;&lt;&lt;current_point[0]&lt;&lt;&quot;, &quot;&lt;&lt;current_point[1]&lt;&lt;&quot;, &quot;&lt;&lt;current_point[2]&lt;&lt;&quot;) falls into pixel &quot;&lt;&lt;x&lt;&lt;&quot;,&quot;&lt;&lt;y&lt;&lt;&quot;.\n&quot;;</span></div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    </div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    <span class="comment">// Do some minor interpolation by checking the three closest neighbors to the point, that are not filled yet.</span></div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    <span class="keywordtype">int</span> floor_x = pcl_lrint (floor (x_real)), floor_y = pcl_lrint (floor (y_real)),</div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        ceil_x  = pcl_lrint (ceil (x_real)),  ceil_y  = pcl_lrint (ceil (y_real));</div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    </div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    <span class="keywordtype">int</span> neighbor_x[4], neighbor_y[4];</div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    neighbor_x[0]=floor_x; neighbor_y[0]=floor_y;</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    neighbor_x[1]=floor_x; neighbor_y[1]=ceil_y;</div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    neighbor_x[2]=ceil_x;  neighbor_y[2]=floor_y;</div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    neighbor_x[3]=ceil_x;  neighbor_y[3]=ceil_y;</div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    <span class="comment">//std::cout &lt;&lt; x_real&lt;&lt;&quot;,&quot;&lt;&lt;y_real&lt;&lt;&quot;: &quot;;</span></div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    </div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i&lt;4; ++i)</div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    {</div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;      <span class="keywordtype">int</span> n_x=neighbor_x[i], n_y=neighbor_y[i];</div>
<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;      <span class="comment">//std::cout &lt;&lt; n_x&lt;&lt;&quot;,&quot;&lt;&lt;n_y&lt;&lt;&quot; &quot;;</span></div>
<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;      <span class="keywordflow">if</span> (n_x==x &amp;&amp; n_y==y)</div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;      <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_range_image.html#a824a6bb27b43a174da775a656b81a483">isInImage</a> (n_x, n_y))</div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;      {</div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        <span class="keywordtype">int</span> neighbor_array_pos = n_y*<a class="code" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a> + n_x;</div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        <span class="keywordflow">if</span> (counters[neighbor_array_pos]==0)</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        {</div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;          <span class="keywordtype">float</span>&amp; neighbor_range = <a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[neighbor_array_pos].range;</div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;          neighbor_range = (pcl_isinf (neighbor_range) ? range_of_current_point : (std::min) (neighbor_range, range_of_current_point));</div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;          top= (std::min) (top, n_y); right= (std::max) (right, n_x); bottom= (std::max) (bottom, n_y); left= (std::min) (left, n_x);</div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        }</div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;      }</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    }</div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;    <span class="comment">//std::cout &lt;&lt;std::endl;</span></div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    </div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    <span class="comment">// The point itself</span></div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    <span class="keywordtype">int</span> arrayPos = y*<a class="code" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a> + x;</div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    <span class="keywordtype">float</span>&amp; range_at_image_point = <a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[arrayPos].range;</div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    <span class="keywordtype">int</span>&amp; counter = counters[arrayPos];</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    <span class="keywordtype">bool</span> addCurrentPoint=<span class="keyword">false</span>, replace_with_current_point=<span class="keyword">false</span>;</div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    </div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <span class="keywordflow">if</span> (counter==0)</div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    {</div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;      replace_with_current_point = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;    }</div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    <span class="keywordflow">else</span></div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    {</div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;      <span class="keywordflow">if</span> (range_of_current_point &lt; range_at_image_point-noise_level)</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;      {</div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        replace_with_current_point = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;      }</div>
<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;      <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fabs (range_of_current_point-range_at_image_point)&lt;=noise_level)</div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;      {</div>
<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        addCurrentPoint = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;      }</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    }</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    </div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    <span class="keywordflow">if</span> (replace_with_current_point)</div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    {</div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;      counter = 1;</div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;      range_at_image_point = range_of_current_point;</div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;      top= (std::min) (top, y); right= (std::max) (right, x); bottom= (std::max) (bottom, y); left= (std::min) (left, x);</div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;      <span class="comment">//std::cout &lt;&lt; &quot;Adding point &quot;&lt;&lt;x&lt;&lt;&quot;,&quot;&lt;&lt;y&lt;&lt;&quot;\n&quot;;</span></div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;    }</div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (addCurrentPoint)</div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;    {</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;      ++counter;</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;      range_at_image_point += (range_of_current_point-range_at_image_point)/counter;</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    }</div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;  }</div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;  </div>
<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;  <span class="keyword">delete</span>[] counters;</div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a86174b766aa77898e0d49ef11f4613b1"><div class="ttname"><a href="classpcl_1_1_range_image.html#a86174b766aa77898e0d49ef11f4613b1">pcl::RangeImage::real2DToInt2D</a></div><div class="ttdeci">void real2DToInt2D(float x, float y, int &amp;xInt, int &amp;yInt) const</div><div class="ttdef"><b>Definition:</b> range_image.hpp:433</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a75e39ee2587a56fbdda651c27cc7898e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75e39ee2587a56fbdda651c27cc7898e">&#9670;&nbsp;</a></span>extractFarRanges()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static PCL_EXPORTS void pcl::RangeImage::extractFarRanges </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_p_c_l_point_cloud2.html">pcl::PCLPointCloud2</a> &amp;&#160;</td>
          <td class="paramname"><em>point_cloud_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_with_viewpoint.html">PointWithViewpoint</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>far_ranges</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if the provided data includes far ranges and add them to far_ranges </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">point_cloud_data</td><td>a <a class="el" href="structpcl_1_1_p_c_l_point_cloud2.html">PCLPointCloud2</a> message containing the input cloud </td></tr>
    <tr><td class="paramname">far_ranges</td><td>the resulting cloud containing those points with far ranges </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a397d6c6b38906e98ab89b817c4191247"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a397d6c6b38906e98ab89b817c4191247">&#9670;&nbsp;</a></span>get1dPointAverage()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::get1dPointAverage </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>delta_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>delta_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>no_of_points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td>
          <td class="paramname"><em>average_point</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Calculates the average 3D position of the no_of_points points described by the start point x,y in the direction delta. Returns a max range point (range=INFINITY) if the first point is max range and an unobserved point (range=-INFINITY) if non of the points is observed. </p>
<div class="fragment"><div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;{</div>
<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;  <span class="comment">//std::cout &lt;&lt; __PRETTY_FUNCTION__&lt;&lt;&quot; called.\n&quot;;</span></div>
<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;  <span class="comment">//MEASURE_FUNCTION_TIME;</span></div>
<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;  <span class="keywordtype">float</span> weight_sum = 1.0f;</div>
<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;  average_point = <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x,y);</div>
<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;  <span class="keywordflow">if</span> (pcl_isinf (average_point.range))</div>
<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;  {</div>
<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;    <span class="keywordflow">if</span> (average_point.range&gt;0.0f)  <span class="comment">// The first point is max range -&gt; return a max range point</span></div>
<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;      <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;    weight_sum = 0.0f;</div>
<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;    average_point.x = average_point.y = average_point.z = average_point.range = 0.0f;</div>
<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;  }</div>
<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;  </div>
<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;  <span class="keywordtype">int</span> x2=x, y2=y;</div>
<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;  Vector4fMap average_point_eigen = average_point.getVector4fMap ();</div>
<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;  <span class="comment">//std::cout &lt;&lt; PVARN (no_of_points);</span></div>
<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> step=1; step&lt;no_of_points; ++step)</div>
<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;  {</div>
<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;    <span class="comment">//std::cout &lt;&lt; PVARC (step);</span></div>
<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;    x2+=delta_x;  y2+=delta_y;</div>
<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;    <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_range_image.html#a2372989721c3c119bb5d4b5ebd9b59c3">isValid</a> (x2, y2))</div>
<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;      <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;    <span class="keyword">const</span> PointWithRange&amp; p = <a class="code" href="classpcl_1_1_range_image.html#a587663a5b4123f4c423c9e38a9b36d41">getPointNoCheck</a> (x2, y2);</div>
<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;    average_point_eigen+=p.getVector4fMap (); average_point.range+=p.range;</div>
<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;    weight_sum += 1.0f;</div>
<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;  }</div>
<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;  <span class="keywordflow">if</span> (weight_sum&lt;= 0.0f)</div>
<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;  {</div>
<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;    average_point = <a class="code" href="classpcl_1_1_range_image.html#a51bf019906a3256038561354d6b95885">unobserved_point</a>;</div>
<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;  }</div>
<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;  <span class="keywordtype">float</span> normalization_factor = 1.0f/weight_sum;</div>
<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;  average_point_eigen *= normalization_factor;</div>
<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;  average_point.range *= normalization_factor;</div>
<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;  <span class="comment">//std::cout &lt;&lt; PVARN (average_point);</span></div>
<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a2372989721c3c119bb5d4b5ebd9b59c3"><div class="ttname"><a href="classpcl_1_1_range_image.html#a2372989721c3c119bb5d4b5ebd9b59c3">pcl::RangeImage::isValid</a></div><div class="ttdeci">bool isValid(int x, int y) const</div><div class="ttdef"><b>Definition:</b> range_image.hpp:448</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a587663a5b4123f4c423c9e38a9b36d41"><div class="ttname"><a href="classpcl_1_1_range_image.html#a587663a5b4123f4c423c9e38a9b36d41">pcl::RangeImage::getPointNoCheck</a></div><div class="ttdeci">const PointWithRange &amp; getPointNoCheck(int image_x, int image_y) const</div><div class="ttdoc">Return the 3D point with range at the given image position. This methd performs no error checking to ...</div><div class="ttdef"><b>Definition:</b> range_image.hpp:488</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a2290765b8ccd5608ffa4967dc282395a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2290765b8ccd5608ffa4967dc282395a">&#9670;&nbsp;</a></span>getAcutenessValue()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::getAcutenessValue </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td>
          <td class="paramname"><em>point1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td>
          <td class="paramname"><em>point2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Calculate a score [0,1] that tells how acute the impact angle is (1.0f - getImpactAngle/90deg) will return -INFINITY if one of the points is unobserved </p>
<div class="fragment"><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;{</div>
<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;  <span class="keywordtype">float</span> impact_angle = <a class="code" href="classpcl_1_1_range_image.html#a6b87fa04fd32ec986f1af9149bd46841">getImpactAngle</a> (point1, point2);</div>
<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;  <span class="keywordflow">if</span> (pcl_isinf (impact_angle))</div>
<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;    <span class="keywordflow">return</span> -std::numeric_limits&lt;float&gt;::infinity ();</div>
<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;  <span class="keywordtype">float</span> ret = 1.0f - float (fabs (impact_angle)/ (0.5f*M_PI));</div>
<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;  <span class="keywordflow">if</span> (impact_angle &lt; 0.0f)</div>
<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;    ret = -ret;</div>
<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;  <span class="comment">//if (fabs (ret)&gt;1)</span></div>
<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;    <span class="comment">//std::cout &lt;&lt; PVARAC (impact_angle)&lt;&lt;PVARN (ret);</span></div>
<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;  <span class="keywordflow">return</span> ret;</div>
<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a6b87fa04fd32ec986f1af9149bd46841"><div class="ttname"><a href="classpcl_1_1_range_image.html#a6b87fa04fd32ec986f1af9149bd46841">pcl::RangeImage::getImpactAngle</a></div><div class="ttdeci">float getImpactAngle(const PointWithRange &amp;point1, const PointWithRange &amp;point2) const</div><div class="ttdef"><b>Definition:</b> range_image.hpp:620</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a56821ed68e8701450b4725ed9c6fd7a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56821ed68e8701450b4725ed9c6fd7a0">&#9670;&nbsp;</a></span>getAcutenessValueImages()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PCL_EXPORTS void pcl::RangeImage::getAcutenessValueImages </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pixel_distance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&amp;&#160;</td>
          <td class="paramname"><em>acuteness_value_image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&amp;&#160;</td>
          <td class="paramname"><em>acuteness_value_image_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Calculate getAcutenessValue for every point </p>

</div>
</div>
<a id="a2388ab60ff312e9034df5e67f899ea97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2388ab60ff312e9034df5e67f899ea97">&#9670;&nbsp;</a></span>getAnglesFromImagePoint()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::getAnglesFromImagePoint </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>image_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>angle_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>angle_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the angles corresponding to the given image point </p>
<div class="fragment"><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;{</div>
<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;  angle_y = (image_y+<span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (<a class="code" href="classpcl_1_1_range_image.html#a1518af9f1c9eb6ac259be92824842e23">image_offset_y_</a>))*<a class="code" href="classpcl_1_1_range_image.html#a9471a00ecde65c754227e155cc234942">angular_resolution_y_</a> - 0.5f*<span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (M_PI);</div>
<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;  <span class="keywordtype">float</span> cos_angle_y = cosf (angle_y);</div>
<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;  angle_x = (cos_angle_y==0.0f ? 0.0f : ( (image_x+ <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (image_offset_x_))*<a class="code" href="classpcl_1_1_range_image.html#abdbfb655cdfeb5d8ace1ac841a52a524">angular_resolution_x_</a> - <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (M_PI))/cos_angle_y);</div>
<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a9471a00ecde65c754227e155cc234942"><div class="ttname"><a href="classpcl_1_1_range_image.html#a9471a00ecde65c754227e155cc234942">pcl::RangeImage::angular_resolution_y_</a></div><div class="ttdeci">float angular_resolution_y_</div><div class="ttdef"><b>Definition:</b> range_image.h:773</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_abdbfb655cdfeb5d8ace1ac841a52a524"><div class="ttname"><a href="classpcl_1_1_range_image.html#abdbfb655cdfeb5d8ace1ac841a52a524">pcl::RangeImage::angular_resolution_x_</a></div><div class="ttdeci">float angular_resolution_x_</div><div class="ttdef"><b>Definition:</b> range_image.h:772</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a6fc3548b0b33e90cead2c1ecfce14c34"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6fc3548b0b33e90cead2c1ecfce14c34">&#9670;&nbsp;</a></span>getAngularResolution() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::getAngularResolution </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Getter for the angular resolution of the range image in x direction in radians per pixel. Provided for downwards compatability </p>
<div class="fragment"><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_range_image.html#abdbfb655cdfeb5d8ace1ac841a52a524">angular_resolution_x_</a>;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a41c0b0f74510988357a56fdc48d18f93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a41c0b0f74510988357a56fdc48d18f93">&#9670;&nbsp;</a></span>getAngularResolution() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::getAngularResolution </td>
          <td>(</td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>angular_resolution_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>angular_resolution_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Getter for the angular resolution of the range image in x and y direction (in radians). </p>
<div class="fragment"><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;{  </div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;  angular_resolution_x = <a class="code" href="classpcl_1_1_range_image.html#abdbfb655cdfeb5d8ace1ac841a52a524">angular_resolution_x_</a>;</div>
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;  angular_resolution_y = <a class="code" href="classpcl_1_1_range_image.html#a9471a00ecde65c754227e155cc234942">angular_resolution_y_</a>;</div>
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a6522dbfac4997c15bd24b0b9b3e9d4dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6522dbfac4997c15bd24b0b9b3e9d4dd">&#9670;&nbsp;</a></span>getAngularResolutionX()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::getAngularResolutionX </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Getter for the angular resolution of the range image in x direction in radians per pixel. </p>
<div class="fragment"><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_range_image.html#abdbfb655cdfeb5d8ace1ac841a52a524">angular_resolution_x_</a>;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="af4891c9812652efe513b9ff060490364"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4891c9812652efe513b9ff060490364">&#9670;&nbsp;</a></span>getAngularResolutionY()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::getAngularResolutionY </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Getter for the angular resolution of the range image in y direction in radians per pixel. </p>
<div class="fragment"><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_range_image.html#a9471a00ecde65c754227e155cc234942">angular_resolution_y_</a>;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a49c425d518d92def18300cd029ae1855"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49c425d518d92def18300cd029ae1855">&#9670;&nbsp;</a></span>getAverageViewPoint()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointCloudTypeWithViewpoints &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Eigen::Vector3f pcl::RangeImage::getAverageViewPoint </td>
          <td>(</td>
          <td class="paramtype">const PointCloudTypeWithViewpoints &amp;&#160;</td>
          <td class="paramname"><em>point_cloud</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the average viewpoint of a point cloud where each point carries viewpoint information as vp_x, vp_y, vp_z </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">point_cloud</td><td>the input point cloud </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>the average viewpoint (as an Eigen::Vector3f) </dd></dl>
<div class="fragment"><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;{</div>
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;  Eigen::Vector3f average_viewpoint (0,0,0);</div>
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;  <span class="keywordtype">int</span> point_counter = 0;</div>
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> point_idx=0; point_idx&lt;point_cloud.points.size (); ++point_idx)</div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;  {</div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;    <span class="keyword">const</span> <span class="keyword">typename</span> PointCloudTypeWithViewpoints::PointType&amp; point = point_cloud.points[point_idx];</div>
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;    <span class="keywordflow">if</span> (!pcl_isfinite (point.vp_x) || !pcl_isfinite (point.vp_y) || !pcl_isfinite (point.vp_z))</div>
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;      <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;    average_viewpoint[0] += point.vp_x;</div>
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;    average_viewpoint[1] += point.vp_y;</div>
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;    average_viewpoint[2] += point.vp_z;</div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;    ++point_counter;</div>
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;  }</div>
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;  average_viewpoint /= point_counter;</div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;  </div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;  <span class="keywordflow">return</span> average_viewpoint;</div>
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a29b238256cffb27a526bf89e857e5602"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29b238256cffb27a526bf89e857e5602">&#9670;&nbsp;</a></span>getBlurredImage()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual PCL_EXPORTS void pcl::RangeImage::getBlurredImage </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>blur_radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;&#160;</td>
          <td class="paramname"><em>range_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get a blurred version of the range image using box filters </p>

</div>
</div>
<a id="a1037c5597389ad0f981c91f820b392a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1037c5597389ad0f981c91f820b392a9">&#9670;&nbsp;</a></span>getBlurredImageUsingIntegralImage()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PCL_EXPORTS void pcl::RangeImage::getBlurredImageUsingIntegralImage </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>blur_radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>integral_image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>valid_points_num_image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;&#160;</td>
          <td class="paramname"><em>range_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Get a blurred version of the range image using box filters on the provided integral image </p>

</div>
</div>
<a id="af5c0908bfbe060fdb517728fe56b2c55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5c0908bfbe060fdb517728fe56b2c55">&#9670;&nbsp;</a></span>getCoordinateFrameTransformation()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static PCL_EXPORTS void pcl::RangeImage::getCoordinateFrameTransformation </td>
          <td>(</td>
          <td class="paramtype">RangeImage::CoordinateFrame&#160;</td>
          <td class="paramname"><em>coordinate_frame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>transformation</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the transformation that transforms the given coordinate frame into CAMERA_FRAME </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">coordinate_frame</td><td>the input coordinate frame </td></tr>
    <tr><td class="paramname">transformation</td><td>the resulting transformation that warps <em>coordinate_frame</em> into CAMERA_FRAME </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ac6a22e10be8bfcedf9297d1e1badef1c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6a22e10be8bfcedf9297d1e1badef1c">&#9670;&nbsp;</a></span>getCurvature()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::getCurvature </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>step_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Calculates the curvature in a point using pca </p>
<div class="fragment"><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;{</div>
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;  VectorAverage3f vector_average;</div>
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y2=y-radius; y2&lt;=y+radius; y2+=step_size)</div>
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;  {</div>
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x2=x-radius; x2&lt;=x+radius; x2+=step_size)</div>
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;    {</div>
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;      <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_range_image.html#a824a6bb27b43a174da775a656b81a483">isInImage</a> (x2, y2))</div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;      <span class="keyword">const</span> PointWithRange&amp; point = <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x2, y2);</div>
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;      <span class="keywordflow">if</span> (!pcl_isfinite (point.range))</div>
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;      vector_average.add (Eigen::Vector3f (point.x, point.y, point.z));</div>
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;    }</div>
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;  }</div>
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;  <span class="keywordflow">if</span> (vector_average.getNoOfSamples () &lt; 3)</div>
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;  Eigen::Vector3f eigen_values;</div>
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;  vector_average.doPCA (eigen_values);</div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;  <span class="keywordflow">return</span> eigen_values[0]/eigen_values.sum ();</div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a2e3b75077a96415e431b90f53a249773"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e3b75077a96415e431b90f53a249773">&#9670;&nbsp;</a></span>getEigenVector3f() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Eigen::Vector3f pcl::RangeImage::getEigenVector3f </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td>
          <td class="paramname"><em>point</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get Eigen::Vector3f from <a class="el" href="structpcl_1_1_point_with_range.html" title="A point structure representing Euclidean xyz coordinates, padded with an extra range float.">PointWithRange</a> </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">point</td><td>the input point </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>an Eigen::Vector3f representation of the input point </dd></dl>
<div class="fragment"><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;{</div>
<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;  <span class="keywordflow">return</span> Eigen::Vector3f (point.x, point.y, point.z);</div>
<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="aab3ee4df50d138b9f9b4ba34306c1071"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab3ee4df50d138b9f9b4ba34306c1071">&#9670;&nbsp;</a></span>getEigenVector3f() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const Eigen::Map&lt; const Eigen::Vector3f &gt; pcl::RangeImage::getEigenVector3f </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Same as above </p>
<div class="fragment"><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;{</div>
<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (index).getVector3fMap ();</div>
<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a63716da3dad788cd23b64e9dc67b1791"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63716da3dad788cd23b64e9dc67b1791">&#9670;&nbsp;</a></span>getEigenVector3f() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const Eigen::Map&lt; const Eigen::Vector3f &gt; pcl::RangeImage::getEigenVector3f </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Same as above </p>
<div class="fragment"><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;{</div>
<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x, y).getVector3fMap ();</div>
<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a9270139a4ebc5b01e91262bba72c1cf5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9270139a4ebc5b01e91262bba72c1cf5">&#9670;&nbsp;</a></span>getEuclideanDistanceSquared()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::getEuclideanDistanceSquared </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the squared euclidean distance between the two image points. Returns -INFINITY if one of the points was not observed </p>
<div class="fragment"><div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;{</div>
<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_range_image.html#a75e51885e151759d815ec1b1b72ea4ff">isObserved</a> (x1,y1)||!<a class="code" href="classpcl_1_1_range_image.html#a75e51885e151759d815ec1b1b72ea4ff">isObserved</a> (x2,y2))</div>
<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;    <span class="keywordflow">return</span> -std::numeric_limits&lt;float&gt;::infinity ();</div>
<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;  <span class="keyword">const</span> PointWithRange&amp; point1 = <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x1,y1),</div>
<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;                      &amp; point2 = <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x2,y2);</div>
<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;  <span class="keywordflow">if</span> (pcl_isinf (point1.range) &amp;&amp; pcl_isinf (point2.range))</div>
<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;    <span class="keywordflow">return</span> 0.0f;</div>
<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;  <span class="keywordflow">if</span> (pcl_isinf (point1.range) || pcl_isinf (point2.range))</div>
<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;    <span class="keywordflow">return</span> std::numeric_limits&lt;float&gt;::infinity ();</div>
<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="common_2include_2pcl_2common_2distances_8h.html#a28ecc173df18d9175dee9f4dd042390b">squaredEuclideanDistance</a> (point1, point2);</div>
<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a75e51885e151759d815ec1b1b72ea4ff"><div class="ttname"><a href="classpcl_1_1_range_image.html#a75e51885e151759d815ec1b1b72ea4ff">pcl::RangeImage::isObserved</a></div><div class="ttdeci">bool isObserved(int x, int y) const</div><div class="ttdef"><b>Definition:</b> range_image.hpp:462</div></div>
<div class="ttc" id="acommon_2include_2pcl_2common_2distances_8h_html_a28ecc173df18d9175dee9f4dd042390b"><div class="ttname"><a href="common_2include_2pcl_2common_2distances_8h.html#a28ecc173df18d9175dee9f4dd042390b">pcl::squaredEuclideanDistance</a></div><div class="ttdeci">float squaredEuclideanDistance(const PointType1 &amp;p1, const PointType2 &amp;p2)</div><div class="ttdoc">Calculate the squared euclidean distance between the two given points.</div><div class="ttdef"><b>Definition:</b> distances.h:174</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a8b9b678a491ddefc1109494157e0aa83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b9b678a491ddefc1109494157e0aa83">&#9670;&nbsp;</a></span>getImagePoint() <span class="overload">[1/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::getImagePoint </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>image_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Same as above </p>
<div class="fragment"><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;{</div>
<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;  <span class="keywordtype">float</span> range;</div>
<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a7a53bfc9f4a3365ee8e62513ae37eb5c">getImagePoint</a> (point, image_x, image_y, range);</div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a7a53bfc9f4a3365ee8e62513ae37eb5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a53bfc9f4a3365ee8e62513ae37eb5c">&#9670;&nbsp;</a></span>getImagePoint() <span class="overload">[2/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::getImagePoint </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>image_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>range</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get imagePoint from 3D point in world coordinates </p>

<p>被 <a class="el" href="classpcl_1_1_range_image_spherical.html#ac3d6279042ea8f5da9ea0efd8221a749">pcl::RangeImageSpherical</a> , 以及 <a class="el" href="classpcl_1_1_range_image_planar.html#aaf84c256b308adaf1147670f957fc95c">pcl::RangeImagePlanar</a> 重载.</p>
<div class="fragment"><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;{</div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;  Eigen::Vector3f transformedPoint = <a class="code" href="classpcl_1_1_range_image.html#ada8177479f0e95999a66294db4c0c3eb">to_range_image_system_</a> * point;</div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;  range = transformedPoint.norm ();</div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;  <span class="keywordtype">float</span> angle_x = <a class="code" href="classpcl_1_1_range_image.html#a17835570c515cca3ba1ecd0f132bf013">atan2LookUp</a> (transformedPoint[0], transformedPoint[2]),</div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        angle_y = <a class="code" href="classpcl_1_1_range_image.html#a6cb20514cdc04674448a5e5c6cb373bc">asinLookUp</a> (transformedPoint[1]/range);</div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#adfd931443541e194f1c53d5f7b1c43e6">getImagePointFromAngles</a> (angle_x, angle_y, image_x, image_y);</div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;  <span class="comment">//std::cout &lt;&lt; &quot; (&quot;&lt;&lt;point[0]&lt;&lt;&quot;,&quot;&lt;&lt;point[1]&lt;&lt;&quot;,&quot;&lt;&lt;point[2]&lt;&lt;&quot;)&quot;</span></div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;            <span class="comment">//&lt;&lt; &quot; =&gt; (&quot;&lt;&lt;transformedPoint[0]&lt;&lt;&quot;,&quot;&lt;&lt;transformedPoint[1]&lt;&lt;&quot;,&quot;&lt;&lt;transformedPoint[2]&lt;&lt;&quot;)&quot;</span></div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;            <span class="comment">//&lt;&lt; &quot; =&gt; &quot;&lt;&lt;angle_x&lt;&lt;&quot;,&quot;&lt;&lt;angle_y&lt;&lt;&quot; =&gt; &quot;&lt;&lt;image_x&lt;&lt;&quot;,&quot;&lt;&lt;image_y&lt;&lt;&quot;\n&quot;;</span></div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a17835570c515cca3ba1ecd0f132bf013"><div class="ttname"><a href="classpcl_1_1_range_image.html#a17835570c515cca3ba1ecd0f132bf013">pcl::RangeImage::atan2LookUp</a></div><div class="ttdeci">static float atan2LookUp(float y, float x)</div><div class="ttdef"><b>Definition:</b> range_image.hpp:60</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a6cb20514cdc04674448a5e5c6cb373bc"><div class="ttname"><a href="classpcl_1_1_range_image.html#a6cb20514cdc04674448a5e5c6cb373bc">pcl::RangeImage::asinLookUp</a></div><div class="ttdeci">static float asinLookUp(float value)</div><div class="ttdef"><b>Definition:</b> range_image.hpp:50</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_adfd931443541e194f1c53d5f7b1c43e6"><div class="ttname"><a href="classpcl_1_1_range_image.html#adfd931443541e194f1c53d5f7b1c43e6">pcl::RangeImage::getImagePointFromAngles</a></div><div class="ttdeci">void getImagePointFromAngles(float angle_x, float angle_y, float &amp;image_x, float &amp;image_y) const</div><div class="ttdef"><b>Definition:</b> range_image.hpp:425</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aac7ef90b9c78876a492fd16701d6578e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac7ef90b9c78876a492fd16701d6578e">&#9670;&nbsp;</a></span>getImagePoint() <span class="overload">[3/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::getImagePoint </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>image_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Same as above </p>
<div class="fragment"><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;{</div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;  <span class="keywordtype">float</span> image_x_float, image_y_float;</div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a7a53bfc9f4a3365ee8e62513ae37eb5c">getImagePoint</a> (point, image_x_float, image_y_float);</div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a86174b766aa77898e0d49ef11f4613b1">real2DToInt2D</a> (image_x_float, image_y_float, image_x, image_y);</div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a9295b795c8f52a90eb3af983612fea8a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9295b795c8f52a90eb3af983612fea8a">&#9670;&nbsp;</a></span>getImagePoint() <span class="overload">[4/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::getImagePoint </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>image_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>range</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Same as above </p>
<div class="fragment"><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;                                                                                                     {</div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;  <span class="keywordtype">float</span> image_x_float, image_y_float;</div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a7a53bfc9f4a3365ee8e62513ae37eb5c">getImagePoint</a> (point, image_x_float, image_y_float, range);</div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a86174b766aa77898e0d49ef11f4613b1">real2DToInt2D</a> (image_x_float, image_y_float, image_x, image_y);</div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a8123412373a87d5030ee5f8a9b3ba3e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8123412373a87d5030ee5f8a9b3ba3e4">&#9670;&nbsp;</a></span>getImagePoint() <span class="overload">[5/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::getImagePoint </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>image_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Same as above </p>
<div class="fragment"><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;{</div>
<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;  <span class="keywordtype">float</span> range;</div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a7a53bfc9f4a3365ee8e62513ae37eb5c">getImagePoint</a> (x, y, z, image_x, image_y, range);</div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a09c81c4b4ffd68fc5742167d15f6af87"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a09c81c4b4ffd68fc5742167d15f6af87">&#9670;&nbsp;</a></span>getImagePoint() <span class="overload">[6/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::getImagePoint </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>image_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>range</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Same as above </p>
<div class="fragment"><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;{</div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;  Eigen::Vector3f point (x, y, z);</div>
<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a7a53bfc9f4a3365ee8e62513ae37eb5c">getImagePoint</a> (point, image_x, image_y, range);</div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a2ba0bfce9adcf8161feec7c59f75082c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ba0bfce9adcf8161feec7c59f75082c">&#9670;&nbsp;</a></span>getImagePoint() <span class="overload">[7/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::getImagePoint </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>image_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Same as above </p>
<div class="fragment"><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;{</div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;  <span class="keywordtype">float</span> image_x_float, image_y_float;</div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a7a53bfc9f4a3365ee8e62513ae37eb5c">getImagePoint</a> (x, y, z, image_x_float, image_y_float);</div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a86174b766aa77898e0d49ef11f4613b1">real2DToInt2D</a> (image_x_float, image_y_float, image_x, image_y);</div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="adfd931443541e194f1c53d5f7b1c43e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adfd931443541e194f1c53d5f7b1c43e6">&#9670;&nbsp;</a></span>getImagePointFromAngles()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::getImagePointFromAngles </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angle_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angle_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>image_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the image point corresponding to the given angles </p>
<div class="fragment"><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;{</div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;  image_x = (angle_x*<a class="code" href="classpcl_1_1_range_image.html#a29ab1f1088b1c8d111dfe02139882ded">cosLookUp</a> (angle_y) + <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (M_PI))*<a class="code" href="classpcl_1_1_range_image.html#adbb1466576e6c2d08e3065b67da0b250">angular_resolution_x_reciprocal_</a> - <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (image_offset_x_);</div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;  image_y = (angle_y + 0.5f*<span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (M_PI))*<a class="code" href="classpcl_1_1_range_image.html#a843659230146a43690ee4d4fb53fcc92">angular_resolution_y_reciprocal_</a> - <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (<a class="code" href="classpcl_1_1_range_image.html#a1518af9f1c9eb6ac259be92824842e23">image_offset_y_</a>);</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a29ab1f1088b1c8d111dfe02139882ded"><div class="ttname"><a href="classpcl_1_1_range_image.html#a29ab1f1088b1c8d111dfe02139882ded">pcl::RangeImage::cosLookUp</a></div><div class="ttdeci">static float cosLookUp(float value)</div><div class="ttdef"><b>Definition:</b> range_image.hpp:86</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a6b87fa04fd32ec986f1af9149bd46841"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b87fa04fd32ec986f1af9149bd46841">&#9670;&nbsp;</a></span>getImpactAngle()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::getImpactAngle </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td>
          <td class="paramname"><em>point1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td>
          <td class="paramname"><em>point2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Calculate the impact angle based on the sensor position and the two given points - will return -INFINITY if one of the points is unobserved </p>
<div class="fragment"><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;                                                                                            {</div>
<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;  <span class="keywordflow">if</span> ( (pcl_isinf (point1.range)&amp;&amp;point1.range&lt;0) || (pcl_isinf (point2.range)&amp;&amp;point2.range&lt;0))</div>
<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    <span class="keywordflow">return</span> -std::numeric_limits&lt;float&gt;::infinity ();</div>
<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;  </div>
<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;  <span class="keywordtype">float</span> r1 = (std::min) (point1.range, point2.range),</div>
<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;        r2 = (std::max) (point1.range, point2.range);</div>
<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;  <span class="keywordtype">float</span> impact_angle = <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (0.5f * M_PI);</div>
<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;  </div>
<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;  <span class="keywordflow">if</span> (pcl_isinf (r2)) </div>
<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;  {</div>
<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;    <span class="keywordflow">if</span> (r2 &gt; 0.0f &amp;&amp; !pcl_isinf (r1))</div>
<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;      impact_angle = 0.0f;</div>
<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;  }</div>
<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!pcl_isinf (r1)) </div>
<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;  {</div>
<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;    <span class="keywordtype">float</span> r1Sqr = r1*r1,</div>
<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;          r2Sqr = r2*r2,</div>
<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;          dSqr  = <a class="code" href="common_2include_2pcl_2common_2distances_8h.html#a28ecc173df18d9175dee9f4dd042390b">squaredEuclideanDistance</a> (point1, point2),</div>
<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;          d     = std::sqrt (dSqr);</div>
<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;    <span class="keywordtype">float</span> cos_impact_angle = (r2Sqr + dSqr - r1Sqr)/ (2.0f*r2*d);</div>
<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;    cos_impact_angle = (std::max) (0.0f, (std::min) (1.0f, cos_impact_angle));</div>
<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;    impact_angle = acosf (cos_impact_angle);  <span class="comment">// Using the cosine rule</span></div>
<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;  }</div>
<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;  </div>
<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;  <span class="keywordflow">if</span> (point1.range &gt; point2.range)</div>
<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    impact_angle = -impact_angle;</div>
<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;  </div>
<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;  <span class="keywordflow">return</span> impact_angle;</div>
<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a1ca716a0e6b2aba846bdb4079275f6d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ca716a0e6b2aba846bdb4079275f6d9">&#9670;&nbsp;</a></span>getImpactAngleBasedOnLocalNormal()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::getImpactAngleBasedOnLocalNormal </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radius</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Extract a local normal (with a heuristic not to include background points) and calculate the impact angle based on this </p>
<div class="fragment"><div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;{</div>
<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_range_image.html#a2372989721c3c119bb5d4b5ebd9b59c3">isValid</a> (x,y))</div>
<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;    <span class="keywordflow">return</span> -std::numeric_limits&lt;float&gt;::infinity ();</div>
<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;  <span class="keyword">const</span> PointWithRange&amp; point = <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x, y);</div>
<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;  <span class="keywordtype">int</span> no_of_nearest_neighbors = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (pow (<span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span> ( (radius + 1.0)), 2.0));</div>
<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;  Eigen::Vector3f normal;</div>
<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_range_image.html#accb0781e43e55cff62851019ffac47ce">getNormalForClosestNeighbors</a> (x, y, radius, point, no_of_nearest_neighbors, normal, 1))</div>
<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;    <span class="keywordflow">return</span> -std::numeric_limits&lt;float&gt;::infinity ();</div>
<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="group__common.html#ga25b0ce695e2a10abb0130bcb5cf90eb6">deg2rad</a> (90.0f) - acosf (normal.dot ( (<a class="code" href="classpcl_1_1_range_image.html#a942d6b253c5df68008614af6dfed323a">getSensorPos</a> ()-<a class="code" href="classpcl_1_1_range_image.html#a2e3b75077a96415e431b90f53a249773">getEigenVector3f</a> (point)).normalized ()));</div>
<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a2e3b75077a96415e431b90f53a249773"><div class="ttname"><a href="classpcl_1_1_range_image.html#a2e3b75077a96415e431b90f53a249773">pcl::RangeImage::getEigenVector3f</a></div><div class="ttdeci">static Eigen::Vector3f getEigenVector3f(const PointWithRange &amp;point)</div><div class="ttdoc">Get Eigen::Vector3f from PointWithRange</div><div class="ttdef"><b>Definition:</b> range_image.hpp:795</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a942d6b253c5df68008614af6dfed323a"><div class="ttname"><a href="classpcl_1_1_range_image.html#a942d6b253c5df68008614af6dfed323a">pcl::RangeImage::getSensorPos</a></div><div class="ttdeci">const Eigen::Vector3f getSensorPos() const</div><div class="ttdoc">Get the sensor position</div><div class="ttdef"><b>Definition:</b> range_image.hpp:676</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_accb0781e43e55cff62851019ffac47ce"><div class="ttname"><a href="classpcl_1_1_range_image.html#accb0781e43e55cff62851019ffac47ce">pcl::RangeImage::getNormalForClosestNeighbors</a></div><div class="ttdeci">bool getNormalForClosestNeighbors(int x, int y, int radius, const PointWithRange &amp;point, int no_of_nearest_neighbors, Eigen::Vector3f &amp;normal, int step_size=1) const</div><div class="ttdef"><b>Definition:</b> range_image.hpp:938</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aecd52c29445543d03e40f0d75c8120c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aecd52c29445543d03e40f0d75c8120c0">&#9670;&nbsp;</a></span>getImpactAngleImageBasedOnLocalNormals()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PCL_EXPORTS float* pcl::RangeImage::getImpactAngleImageBasedOnLocalNormals </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radius</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Uses the above function for every point in the image </p>

</div>
</div>
<a id="a03e02f341db8f43860b2cb83824a2123"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a03e02f341db8f43860b2cb83824a2123">&#9670;&nbsp;</a></span>getIntegralImage()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PCL_EXPORTS void pcl::RangeImage::getIntegralImage </td>
          <td>(</td>
          <td class="paramtype">float *&amp;&#160;</td>
          <td class="paramname"><em>integral_image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&amp;&#160;</td>
          <td class="paramname"><em>valid_points_num_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Get the integral image of the range values (used for fast blur operations). You are responsible for deleting it after usage! </p>

</div>
</div>
<a id="a225cab091b80ff23a3c7b0d7291dead2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a225cab091b80ff23a3c7b0d7291dead2">&#9670;&nbsp;</a></span>getInterpolatedSurfaceProjection()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PCL_EXPORTS float* pcl::RangeImage::getInterpolatedSurfaceProjection </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>pose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pixel_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>world_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Calculate a range patch as the z values of the coordinate frame given by pose. The patch will have size pixel_size x pixel_size and each pixel covers world_size/pixel_size meters in the world You are responsible for deleting the structure afterwards! </p>

</div>
</div>
<a id="ac504743608967dcd142dc4249b82ea5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac504743608967dcd142dc4249b82ea5a">&#9670;&nbsp;</a></span>getMaxAngleSize()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::getMaxAngleSize </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>viewer_pose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>center</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>radius</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the size of a certain area when seen from the given pose </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">viewer_pose</td><td>an affine matrix defining the pose of the viewer </td></tr>
    <tr><td class="paramname">center</td><td>the center of the area </td></tr>
    <tr><td class="paramname">radius</td><td>the radius of the area </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>the size of the area as viewed according to <em>viewer_pose</em> </dd></dl>
<div class="fragment"><div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;{</div>
<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;  <span class="keywordflow">return</span> 2.0f * asinf (radius/ (viewer_pose.translation ()-center).norm ());</div>
<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a7bca09c1eb8be12975c47cb6d6233ca5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7bca09c1eb8be12975c47cb6d6233ca5">&#9670;&nbsp;</a></span>getNew()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual PCL_EXPORTS <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a>* pcl::RangeImage::getNew </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Return a newly created Range image. Can be reimplmented in derived classes like <a class="el" href="classpcl_1_1_range_image_planar.html" title="RangeImagePlanar is derived from the original range image and differs from it because it&#39;s not a sphe...">RangeImagePlanar</a> to return an image of the same type. </p>

<p>被 <a class="el" href="classpcl_1_1_range_image_spherical.html#acb6dc5877e1e91d773392a346778b0bc">pcl::RangeImageSpherical</a> , 以及 <a class="el" href="classpcl_1_1_range_image_planar.html#a32b6b82b559574477544219f4444e12d">pcl::RangeImagePlanar</a> 重载.</p>
<div class="fragment"><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;{ <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classpcl_1_1_range_image.html#af18b2d3410fb7799ad4de375b51df035">RangeImage</a>; }</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_af18b2d3410fb7799ad4de375b51df035"><div class="ttname"><a href="classpcl_1_1_range_image.html#af18b2d3410fb7799ad4de375b51df035">pcl::RangeImage::RangeImage</a></div><div class="ttdeci">PCL_EXPORTS RangeImage()</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aeb21e9a192704802adabd6693f00e397"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb21e9a192704802adabd6693f00e397">&#9670;&nbsp;</a></span>getNormal()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::RangeImage::getNormal </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>normal</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>step_size</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Calculate the normal of an image point using the neighbors with a maximum pixel distance of radius. step_size determines how many pixels are used. 1 means all, 2 only every second, etc.. Returns false if it was unable to calculate a normal. </p>
<div class="fragment"><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;{</div>
<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;  VectorAverage3f vector_average;</div>
<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y2=y-radius; y2&lt;=y+radius; y2+=step_size)</div>
<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;  {</div>
<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x2=x-radius; x2&lt;=x+radius; x2+=step_size)</div>
<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;    {</div>
<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;      <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_range_image.html#a824a6bb27b43a174da775a656b81a483">isInImage</a> (x2, y2))</div>
<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;      <span class="keyword">const</span> PointWithRange&amp; point = <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x2, y2);</div>
<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;      <span class="keywordflow">if</span> (!pcl_isfinite (point.range))</div>
<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;      vector_average.add (Eigen::Vector3f (point.x, point.y, point.z));</div>
<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;    }</div>
<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;  }</div>
<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;  <span class="keywordflow">if</span> (vector_average.getNoOfSamples () &lt; 3)</div>
<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;  Eigen::Vector3f eigen_values, eigen_vector2, eigen_vector3;</div>
<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;  vector_average.doPCA (eigen_values, normal, eigen_vector2, eigen_vector3);</div>
<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;  <span class="keywordflow">if</span> (normal.dot ( (<a class="code" href="classpcl_1_1_range_image.html#a942d6b253c5df68008614af6dfed323a">getSensorPos</a> ()-vector_average.getMean ()).normalized ()) &lt; 0.0f)</div>
<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;    normal *= -1.0f;</div>
<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5b6d4bb74fa5134a6c21823dfdcdb13e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b6d4bb74fa5134a6c21823dfdcdb13e">&#9670;&nbsp;</a></span>getNormalBasedAcutenessValue()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::getNormalBasedAcutenessValue </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radius</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Calculate a score [0,1] that tells how acute the impact angle is (1.0f - getImpactAngle/90deg) This uses getImpactAngleBasedOnLocalNormal Will return -INFINITY if no normal could be calculated </p>
<div class="fragment"><div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;{</div>
<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;  <span class="keywordtype">float</span> impact_angle = <a class="code" href="classpcl_1_1_range_image.html#a1ca716a0e6b2aba846bdb4079275f6d9">getImpactAngleBasedOnLocalNormal</a> (x, y, radius);</div>
<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;  <span class="keywordflow">if</span> (pcl_isinf (impact_angle))</div>
<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;    <span class="keywordflow">return</span> -std::numeric_limits&lt;float&gt;::infinity ();</div>
<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;  <span class="keywordtype">float</span> ret = 1.0f - <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> ( (impact_angle / (0.5f * M_PI)));</div>
<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;  <span class="comment">//std::cout &lt;&lt; PVARAC (impact_angle)&lt;&lt;PVARN (ret);</span></div>
<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;  <span class="keywordflow">return</span> ret;</div>
<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a1ca716a0e6b2aba846bdb4079275f6d9"><div class="ttname"><a href="classpcl_1_1_range_image.html#a1ca716a0e6b2aba846bdb4079275f6d9">pcl::RangeImage::getImpactAngleBasedOnLocalNormal</a></div><div class="ttdeci">float getImpactAngleBasedOnLocalNormal(int x, int y, int radius) const</div><div class="ttdef"><b>Definition:</b> range_image.hpp:885</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a0ee070d08d3e3688e24f8ebffc9b6436"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ee070d08d3e3688e24f8ebffc9b6436">&#9670;&nbsp;</a></span>getNormalBasedUprightTransformation()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PCL_EXPORTS bool pcl::RangeImage::getNormalBasedUprightTransformation </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>max_dist</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>transformation</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Get a local coordinate frame at the given point based on the normal. </p>

</div>
</div>
<a id="a5cb82433197f15970647793c6271fe9a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5cb82433197f15970647793c6271fe9a">&#9670;&nbsp;</a></span>getNormalForClosestNeighbors() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::RangeImage::getNormalForClosestNeighbors </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>normal</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radius</em> = <code>2</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Same as above, using default values </p>
<div class="fragment"><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;{</div>
<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_range_image.html#a2372989721c3c119bb5d4b5ebd9b59c3">isValid</a> (x,y))</div>
<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;  <span class="keywordtype">int</span> no_of_nearest_neighbors = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (pow (<span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span> (radius + 1.0), 2.0));</div>
<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_range_image.html#accb0781e43e55cff62851019ffac47ce">getNormalForClosestNeighbors</a> (x, y, radius, <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x,y).getVector3fMap (), no_of_nearest_neighbors, normal);</div>
<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a2de7a8f331c28ac81440ba74e56369bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2de7a8f331c28ac81440ba74e56369bc">&#9670;&nbsp;</a></span>getNormalForClosestNeighbors() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::RangeImage::getNormalForClosestNeighbors </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>no_of_nearest_neighbors</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>normal</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f *&#160;</td>
          <td class="paramname"><em>point_on_plane</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>step_size</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Same as above </p>
<div class="fragment"><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;{</div>
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;  Eigen::Vector3f mean, eigen_values;</div>
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;  <span class="keywordtype">float</span> used_squared_max_distance;</div>
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;  <span class="keywordtype">bool</span> ret = <a class="code" href="classpcl_1_1_range_image.html#abf1ce91a6aae13aefb5d3026273eb108">getSurfaceInformation</a> (x, y, radius, point, no_of_nearest_neighbors, step_size, used_squared_max_distance,</div>
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;                                   normal, mean, eigen_values);</div>
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;  </div>
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;  <span class="keywordflow">if</span> (ret)</div>
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;  {</div>
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;    <span class="keywordflow">if</span> (point_on_plane != NULL)</div>
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;      *point_on_plane = (normal.dot (mean) - normal.dot (point))*normal + point;</div>
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;  }</div>
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;  <span class="keywordflow">return</span> ret;</div>
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_abf1ce91a6aae13aefb5d3026273eb108"><div class="ttname"><a href="classpcl_1_1_range_image.html#abf1ce91a6aae13aefb5d3026273eb108">pcl::RangeImage::getSurfaceInformation</a></div><div class="ttdeci">bool getSurfaceInformation(int x, int y, int radius, const Eigen::Vector3f &amp;point, int no_of_closest_neighbors, int step_size, float &amp;max_closest_neighbor_distance_squared, Eigen::Vector3f &amp;normal, Eigen::Vector3f &amp;mean, Eigen::Vector3f &amp;eigen_values, Eigen::Vector3f *normal_all_neighbors=NULL, Eigen::Vector3f *mean_all_neighbors=NULL, Eigen::Vector3f *eigen_values_all_neighbors=NULL) const</div><div class="ttdef"><b>Definition:</b> range_image.hpp:966</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="accb0781e43e55cff62851019ffac47ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#accb0781e43e55cff62851019ffac47ce">&#9670;&nbsp;</a></span>getNormalForClosestNeighbors() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::RangeImage::getNormalForClosestNeighbors </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp;&#160;</td>
          <td class="paramname"><em>point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>no_of_nearest_neighbors</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>normal</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>step_size</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Same as above, but only the no_of_nearest_neighbors points closest to the given point are considered. </p>
<div class="fragment"><div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;{</div>
<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_range_image.html#accb0781e43e55cff62851019ffac47ce">getNormalForClosestNeighbors</a> (x, y, radius, Eigen::Vector3f (point.x, point.y, point.z), no_of_nearest_neighbors, normal, NULL, step_size);</div>
<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="addd0bcec3d51c70ac205bbfc75dd8c18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#addd0bcec3d51c70ac205bbfc75dd8c18">&#9670;&nbsp;</a></span>getOverlap()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PCL_EXPORTS float pcl::RangeImage::getOverlap </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;&#160;</td>
          <td class="paramname"><em>other_range_image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>relative_transformation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>search_radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>max_distance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pixel_step</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Calculates the overlap of two range images given the relative transformation (from the given image to *this) </p>

</div>
</div>
<a id="aa403d6ee9c3d76a50b268204acab27ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa403d6ee9c3d76a50b268204acab27ff">&#9670;&nbsp;</a></span>getPoint() <span class="overload">[1/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp; pcl::RangeImage::getPoint </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>image_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Non-const-version of the above </p>
<div class="fragment"><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;{</div>
<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;  <span class="keywordtype">int</span> x, y;</div>
<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a86174b766aa77898e0d49ef11f4613b1">real2DToInt2D</a> (image_x, image_y, x, y);</div>
<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x, y);</div>
<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a0168934416e10ded1eb34d57123b8d37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0168934416e10ded1eb34d57123b8d37">&#9670;&nbsp;</a></span>getPoint() <span class="overload">[2/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp; pcl::RangeImage::getPoint </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>image_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Return the 3d point with range at the given image position </p>
<div class="fragment"><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;{</div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;  <span class="keywordtype">int</span> x, y;</div>
<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a86174b766aa77898e0d49ef11f4613b1">real2DToInt2D</a> (image_x, image_y, x, y);</div>
<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x, y);</div>
<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a52164736793c99cc9fc48dedee615e45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52164736793c99cc9fc48dedee615e45">&#9670;&nbsp;</a></span>getPoint() <span class="overload">[3/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp; pcl::RangeImage::getPoint </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>image_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the 3D point with range at the given image position </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">image_x</td><td>the x coordinate </td></tr>
    <tr><td class="paramname">image_y</td><td>the y coordinate </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>the point at the specified location (returns unobserved_point if outside of the image bounds) </dd></dl>
<div class="fragment"><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;{</div>
<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_range_image.html#a824a6bb27b43a174da775a656b81a483">isInImage</a> (image_x, image_y))</div>
<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_range_image.html#a51bf019906a3256038561354d6b95885">unobserved_point</a>;</div>
<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[image_y*<a class="code" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a> + image_x];</div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a35a8dbb8cc328029a928b3cff4225d5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35a8dbb8cc328029a928b3cff4225d5b">&#9670;&nbsp;</a></span>getPoint() <span class="overload">[4/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::getPoint </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>image_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Same as above </p>
<div class="fragment"><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;{</div>
<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;  <span class="comment">//std::cout &lt;&lt; getPoint (image_x, image_y)&lt;&lt; &quot; - &quot; &lt;&lt; getPoint (image_x, image_y).getVector3fMap ()&lt;&lt;&quot;\n&quot;;</span></div>
<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;  point = <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (image_x, image_y).getVector3fMap ();</div>
<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a467a03da34e4ffd323ae0f080ac85570"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a467a03da34e4ffd323ae0f080ac85570">&#9670;&nbsp;</a></span>getPoint() <span class="overload">[5/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp; pcl::RangeImage::getPoint </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Return the 3d point with range at the given index (whereas index=y*width+x) </p>
<div class="fragment"><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;{</div>
<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[index];</div>
<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="aa7e520479cc8f66e5ddd7f594649b25f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7e520479cc8f66e5ddd7f594649b25f">&#9670;&nbsp;</a></span>getPoint() <span class="overload">[6/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::getPoint </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Same as above </p>
<div class="fragment"><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;{</div>
<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;  point = <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (index).getVector3fMap ();</div>
<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a45bfd00007940d0043b8f1df43663d07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45bfd00007940d0043b8f1df43663d07">&#9670;&nbsp;</a></span>getPointNoCheck() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp; pcl::RangeImage::getPointNoCheck </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>image_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Non-const-version of getPointNoCheck </p>
<div class="fragment"><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;{</div>
<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[image_y*<a class="code" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a> + image_x];</div>
<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a587663a5b4123f4c423c9e38a9b36d41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a587663a5b4123f4c423c9e38a9b36d41">&#9670;&nbsp;</a></span>getPointNoCheck() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> &amp; pcl::RangeImage::getPointNoCheck </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>image_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the 3D point with range at the given image position. This methd performs no error checking to make sure the specified image position is inside of the image! </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">image_x</td><td>the x coordinate </td></tr>
    <tr><td class="paramname">image_y</td><td>the y coordinate </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>the point at the specified location (program may fail if the location is outside of the image bounds) </dd></dl>
<div class="fragment"><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;{</div>
<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[image_y*<a class="code" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a> + image_x];</div>
<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="aea43fc18a9695437879d4b3b3860a9ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea43fc18a9695437879d4b3b3860a9ae">&#9670;&nbsp;</a></span>getRangeDifference()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::getRangeDifference </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns the difference in range between the given point and the range of the point in the image at the position the given point would be. (Return value is point_in_image.range-given_point.range) </p>
<div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;{</div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;  <span class="keywordtype">int</span> image_x, image_y;</div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;  <span class="keywordtype">float</span> range;</div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a7a53bfc9f4a3365ee8e62513ae37eb5c">getImagePoint</a> (point, image_x, image_y, range);</div>
<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_range_image.html#a824a6bb27b43a174da775a656b81a483">isInImage</a> (image_x, image_y))</div>
<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    <span class="keywordflow">return</span> -std::numeric_limits&lt;float&gt;::infinity ();</div>
<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;  <span class="keywordtype">float</span> image_point_range = <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (image_x, image_y).range;</div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;  <span class="keywordflow">if</span> (pcl_isinf (image_point_range))</div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;  {</div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    <span class="keywordflow">if</span> (image_point_range &gt; 0.0f)</div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;      <span class="keywordflow">return</span> std::numeric_limits&lt;float&gt;::infinity ();</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    <span class="keywordflow">else</span></div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;      <span class="keywordflow">return</span> -std::numeric_limits&lt;float&gt;::infinity ();</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;  }</div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;  <span class="keywordflow">return</span> image_point_range - range;</div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ab124a58f66b1d9a5d0f433c8474ef2b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab124a58f66b1d9a5d0f433c8474ef2b4">&#9670;&nbsp;</a></span>getRangesArray()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PCL_EXPORTS float* pcl::RangeImage::getRangesArray </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get all the range values in one float array of size width*height <br  />
 </p>
<dl class="section return"><dt>返回</dt><dd>a pointer to a new float array containing the range values </dd></dl>
<dl class="section note"><dt>注解</dt><dd>This method allocates a new float array; the caller is responsible for freeing this memory. </dd></dl>

</div>
</div>
<a id="a33f4985713cf3f17ac8f8c69c0201729"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a33f4985713cf3f17ac8f8c69c0201729">&#9670;&nbsp;</a></span>getSubImage()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void pcl::RangeImage::getSubImage </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sub_image_image_offset_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sub_image_image_offset_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sub_image_width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sub_image_height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>combine_pixels</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;&#160;</td>
          <td class="paramname"><em>sub_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get a sub part of the complete image as a new range image. </p><dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sub_image_image_offset_x</td><td>- The x coordinate of the top left pixel of the sub image. This is always according to absolute 0,0 meaning -180°,-90° and it is already in the system of the new image, so the actual pixel used in the original image is combine_pixels* (image_offset_x-image_offset_x_) </td></tr>
    <tr><td class="paramname">sub_image_image_offset_y</td><td>- Same as image_offset_x for the y coordinate </td></tr>
    <tr><td class="paramname">sub_image_width</td><td>- width of the new image </td></tr>
    <tr><td class="paramname">sub_image_height</td><td>- height of the new image </td></tr>
    <tr><td class="paramname">combine_pixels</td><td>- shrinking factor, meaning the new angular resolution is combine_pixels times the old one </td></tr>
    <tr><td class="paramname">sub_image</td><td>- the output image </td></tr>
  </table>
  </dd>
</dl>

<p>被 <a class="el" href="classpcl_1_1_range_image_planar.html#a9fc7e3fe0e7c8745b01c81e20a26678a">pcl::RangeImagePlanar</a> 重载.</p>

</div>
</div>
<a id="afd94afe865f6cd46cfbc64f45bb1d03e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd94afe865f6cd46cfbc64f45bb1d03e">&#9670;&nbsp;</a></span>getSurfaceAngleChange()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::getSurfaceAngleChange </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>angle_change_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>angle_change_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Calculates, how much the surface changes at a point. Returns an angle [0.0f, PI] for x and y direction. A return value of -INFINITY means that a point was unobserved. </p>
<div class="fragment"><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;{</div>
<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;  angle_change_x = angle_change_y = -std::numeric_limits&lt;float&gt;::infinity ();</div>
<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_range_image.html#a2372989721c3c119bb5d4b5ebd9b59c3">isValid</a> (x,y))</div>
<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;  Eigen::Vector3f point;</div>
<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x, y, point);</div>
<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;  Eigen::Affine3f transformation = <a class="code" href="classpcl_1_1_range_image.html#a6646c58459dc6780f114039d296d88d4">getTransformationToViewerCoordinateFrame</a> (point);</div>
<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;  </div>
<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_range_image.html#a75e51885e151759d815ec1b1b72ea4ff">isObserved</a> (x-radius, y) &amp;&amp; <a class="code" href="classpcl_1_1_range_image.html#a75e51885e151759d815ec1b1b72ea4ff">isObserved</a> (x+radius, y))</div>
<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;  {</div>
<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    Eigen::Vector3f transformed_left;</div>
<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_range_image.html#a771ab2f1ee2952a319da20301b27ab3b">isMaxRange</a> (x-radius, y))</div>
<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;      transformed_left = Eigen::Vector3f (0.0f, 0.0f, -1.0f);</div>
<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;    <span class="keywordflow">else</span></div>
<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    {</div>
<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;      Eigen::Vector3f left;</div>
<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;      <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x-radius, y, left);</div>
<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;      transformed_left = - (transformation * left);</div>
<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;      <span class="comment">//std::cout &lt;&lt; PVARN (transformed_left[1]);</span></div>
<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;      transformed_left[1] = 0.0f;</div>
<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;      transformed_left.normalize ();</div>
<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;    }</div>
<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;    </div>
<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;    Eigen::Vector3f transformed_right;</div>
<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_range_image.html#a771ab2f1ee2952a319da20301b27ab3b">isMaxRange</a> (x+radius, y))</div>
<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;      transformed_right = Eigen::Vector3f (0.0f, 0.0f, 1.0f);</div>
<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;    <span class="keywordflow">else</span></div>
<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;    {</div>
<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;      Eigen::Vector3f right;</div>
<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;      <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x+radius, y, right);</div>
<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;      transformed_right = transformation * right;</div>
<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;      <span class="comment">//std::cout &lt;&lt; PVARN (transformed_right[1]);</span></div>
<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;      transformed_right[1] = 0.0f;</div>
<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;      transformed_right.normalize ();</div>
<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;    }</div>
<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;    angle_change_x = transformed_left.dot (transformed_right);</div>
<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;    angle_change_x = (std::max) (0.0f, (std::min) (1.0f, angle_change_x));</div>
<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;    angle_change_x = acosf (angle_change_x);</div>
<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;  }</div>
<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;  </div>
<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_range_image.html#a75e51885e151759d815ec1b1b72ea4ff">isObserved</a> (x, y-radius) &amp;&amp; <a class="code" href="classpcl_1_1_range_image.html#a75e51885e151759d815ec1b1b72ea4ff">isObserved</a> (x, y+radius))</div>
<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;  {</div>
<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;    Eigen::Vector3f transformed_top;</div>
<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_range_image.html#a771ab2f1ee2952a319da20301b27ab3b">isMaxRange</a> (x, y-radius))</div>
<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;      transformed_top = Eigen::Vector3f (0.0f, 0.0f, -1.0f);</div>
<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;    <span class="keywordflow">else</span></div>
<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;    {</div>
<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;      Eigen::Vector3f top;</div>
<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;      <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x, y-radius, top);</div>
<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;      transformed_top = - (transformation * top);</div>
<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;      <span class="comment">//std::cout &lt;&lt; PVARN (transformed_top[0]);</span></div>
<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;      transformed_top[0] = 0.0f;</div>
<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;      transformed_top.normalize ();</div>
<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;    }</div>
<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;    </div>
<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;    Eigen::Vector3f transformed_bottom;</div>
<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_range_image.html#a771ab2f1ee2952a319da20301b27ab3b">isMaxRange</a> (x, y+radius))</div>
<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;      transformed_bottom = Eigen::Vector3f (0.0f, 0.0f, 1.0f);</div>
<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;    <span class="keywordflow">else</span></div>
<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;    {</div>
<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;      Eigen::Vector3f bottom;</div>
<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;      <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x, y+radius, bottom);</div>
<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;      transformed_bottom = transformation * bottom;</div>
<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;      <span class="comment">//std::cout &lt;&lt; PVARN (transformed_bottom[0]);</span></div>
<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;      transformed_bottom[0] = 0.0f;</div>
<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;      transformed_bottom.normalize ();</div>
<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;    }</div>
<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;    angle_change_y = transformed_top.dot (transformed_bottom);</div>
<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;    angle_change_y = (std::max) (0.0f, (std::min) (1.0f, angle_change_y));</div>
<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;    angle_change_y = acosf (angle_change_y);</div>
<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;  }</div>
<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a6646c58459dc6780f114039d296d88d4"><div class="ttname"><a href="classpcl_1_1_range_image.html#a6646c58459dc6780f114039d296d88d4">pcl::RangeImage::getTransformationToViewerCoordinateFrame</a></div><div class="ttdeci">Eigen::Affine3f getTransformationToViewerCoordinateFrame(const Eigen::Vector3f &amp;point) const</div><div class="ttdoc">Get the local coordinate frame with 0,0,0 in point, upright and Z as the viewing direction</div><div class="ttdef"><b>Definition:</b> range_image.hpp:1163</div></div>
<div class="ttc" id="aclasspcl_1_1_range_image_html_a771ab2f1ee2952a319da20301b27ab3b"><div class="ttname"><a href="classpcl_1_1_range_image.html#a771ab2f1ee2952a319da20301b27ab3b">pcl::RangeImage::isMaxRange</a></div><div class="ttdeci">bool isMaxRange(int x, int y) const</div><div class="ttdef"><b>Definition:</b> range_image.hpp:471</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a0501e4697fe05327423b4e247baa3528"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0501e4697fe05327423b4e247baa3528">&#9670;&nbsp;</a></span>getSurfaceAngleChangeImages()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PCL_EXPORTS void pcl::RangeImage::getSurfaceAngleChangeImages </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&amp;&#160;</td>
          <td class="paramname"><em>angle_change_image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&amp;&#160;</td>
          <td class="paramname"><em>angle_change_image_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Uses the above function for every point in the image </p>

</div>
</div>
<a id="a16b744103dab2ba2a9ada137aa75887f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16b744103dab2ba2a9ada137aa75887f">&#9670;&nbsp;</a></span>getSurfaceChange()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PCL_EXPORTS float pcl::RangeImage::getSurfaceChange </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radius</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Calculates, how much the surface changes at a point. Pi meaning a flat suface and 0.0f would be a needle point Calculates, how much the surface changes at a point. 1 meaning a 90deg angle and 0 a flat suface </p>

</div>
</div>
<a id="a23b27f51c94a493a2c98c96a6acf3f11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a23b27f51c94a493a2c98c96a6acf3f11">&#9670;&nbsp;</a></span>getSurfaceChangeImage()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PCL_EXPORTS float* pcl::RangeImage::getSurfaceChangeImage </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radius</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Uses the above function for every point in the image </p>

</div>
</div>
<a id="abf1ce91a6aae13aefb5d3026273eb108"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf1ce91a6aae13aefb5d3026273eb108">&#9670;&nbsp;</a></span>getSurfaceInformation()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::RangeImage::getSurfaceInformation </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>no_of_closest_neighbors</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>step_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>max_closest_neighbor_distance_squared</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>normal</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>mean</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>eigen_values</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f *&#160;</td>
          <td class="paramname"><em>normal_all_neighbors</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f *&#160;</td>
          <td class="paramname"><em>mean_all_neighbors</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f *&#160;</td>
          <td class="paramname"><em>eigen_values_all_neighbors</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Same as above but extracts some more data and can also return the extracted information for all neighbors in radius if normal_all_neighbors is not NULL </p>
<div class="fragment"><div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;{</div>
<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;  max_closest_neighbor_distance_squared=0.0f;</div>
<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;  normal.setZero (); mean.setZero (); eigen_values.setZero ();</div>
<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;  <span class="keywordflow">if</span> (normal_all_neighbors!=NULL)</div>
<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;    normal_all_neighbors-&gt;setZero ();</div>
<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;  <span class="keywordflow">if</span> (mean_all_neighbors!=NULL)</div>
<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;    mean_all_neighbors-&gt;setZero ();</div>
<div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;  <span class="keywordflow">if</span> (eigen_values_all_neighbors!=NULL)</div>
<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;    eigen_values_all_neighbors-&gt;setZero ();</div>
<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;  </div>
<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;  <span class="keywordtype">int</span> blocksize = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (pow (<span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span> ( (2.0 * radius + 1.0)), 2.0));</div>
<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;  </div>
<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;  PointWithRange given_point;</div>
<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;  given_point.x=point[0];  given_point.y=point[1];  given_point.z=point[2];</div>
<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;  </div>
<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;  std::vector&lt;NeighborWithDistance&gt; ordered_neighbors (blocksize);</div>
<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;  <span class="keywordtype">int</span> neighbor_counter = 0;</div>
<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y2=y-radius; y2&lt;=y+radius; y2+=step_size)</div>
<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;  {</div>
<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x2=x-radius; x2&lt;=x+radius; x2+=step_size)</div>
<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;    {</div>
<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;      <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_range_image.html#a2372989721c3c119bb5d4b5ebd9b59c3">isValid</a> (x2, y2))</div>
<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;      NeighborWithDistance&amp; neighbor_with_distance = ordered_neighbors[neighbor_counter];</div>
<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;      neighbor_with_distance.neighbor = &amp;<a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x2, y2);</div>
<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;      neighbor_with_distance.distance = <a class="code" href="common_2include_2pcl_2common_2distances_8h.html#a28ecc173df18d9175dee9f4dd042390b">squaredEuclideanDistance</a> (given_point, *neighbor_with_distance.neighbor);</div>
<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;      ++neighbor_counter;</div>
<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;    }</div>
<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;  }</div>
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;  no_of_closest_neighbors = (std::min) (neighbor_counter, no_of_closest_neighbors);</div>
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; </div>
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;  std::sort (ordered_neighbors.begin (), ordered_neighbors.begin () + neighbor_counter);  <span class="comment">// Normal sort seems to be the fastest method (faster than partial_sort)</span></div>
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;  <span class="comment">//std::stable_sort (ordered_neighbors, ordered_neighbors+neighbor_counter);</span></div>
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;  <span class="comment">//std::partial_sort (ordered_neighbors, ordered_neighbors+no_of_closest_neighbors, ordered_neighbors+neighbor_counter);</span></div>
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;  </div>
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;  max_closest_neighbor_distance_squared = ordered_neighbors[no_of_closest_neighbors-1].distance;</div>
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;  <span class="comment">//float max_distance_squared = max_closest_neighbor_distance_squared;</span></div>
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;  <span class="keywordtype">float</span> max_distance_squared = max_closest_neighbor_distance_squared*4.0f;  <span class="comment">// Double the allowed distance value</span></div>
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;  <span class="comment">//max_closest_neighbor_distance_squared = max_distance_squared;</span></div>
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;  </div>
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;  VectorAverage3f vector_average;</div>
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;  <span class="comment">//for (int neighbor_idx=0; neighbor_idx&lt;no_of_closest_neighbors; ++neighbor_idx)</span></div>
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;  <span class="keywordtype">int</span> neighbor_idx;</div>
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;  <span class="keywordflow">for</span> (neighbor_idx=0; neighbor_idx&lt;neighbor_counter; ++neighbor_idx)</div>
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;  {</div>
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;    <span class="keywordflow">if</span> (ordered_neighbors[neighbor_idx].distance &gt; max_distance_squared)</div>
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;      <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;    <span class="comment">//std::cout &lt;&lt; ordered_neighbors[neighbor_idx].distance&lt;&lt;&quot;\n&quot;;</span></div>
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;    vector_average.add (ordered_neighbors[neighbor_idx].neighbor-&gt;getVector3fMap ());</div>
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;  }</div>
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;  </div>
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;  <span class="keywordflow">if</span> (vector_average.getNoOfSamples () &lt; 3)</div>
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;  <span class="comment">//std::cout &lt;&lt; PVARN (vector_average.getNoOfSamples ());</span></div>
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;  Eigen::Vector3f eigen_vector2, eigen_vector3;</div>
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;  vector_average.doPCA (eigen_values, normal, eigen_vector2, eigen_vector3);</div>
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;  Eigen::Vector3f viewing_direction = (<a class="code" href="classpcl_1_1_range_image.html#a942d6b253c5df68008614af6dfed323a">getSensorPos</a> ()-point).normalized ();</div>
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;  <span class="keywordflow">if</span> (normal.dot (viewing_direction) &lt; 0.0f)</div>
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;    normal *= -1.0f;</div>
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;  mean = vector_average.getMean ();</div>
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;  </div>
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;  <span class="keywordflow">if</span> (normal_all_neighbors==NULL)</div>
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;  </div>
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;  <span class="comment">// Add remaining neighbors</span></div>
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> neighbor_idx2=neighbor_idx; neighbor_idx2&lt;neighbor_counter; ++neighbor_idx2)</div>
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;    vector_average.add (ordered_neighbors[neighbor_idx2].neighbor-&gt;getVector3fMap ());</div>
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;  </div>
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;  vector_average.doPCA (*eigen_values_all_neighbors, *normal_all_neighbors, eigen_vector2, eigen_vector3);</div>
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;  <span class="comment">//std::cout &lt;&lt; PVARN (vector_average.getNoOfSamples ())&lt;&lt;&quot;.\n&quot;;</span></div>
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;  <span class="keywordflow">if</span> (normal_all_neighbors-&gt;dot (viewing_direction) &lt; 0.0f)</div>
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;    *normal_all_neighbors *= -1.0f;</div>
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;  *mean_all_neighbors = vector_average.getMean ();</div>
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;  </div>
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;  <span class="comment">//std::cout &lt;&lt; viewing_direction[0]&lt;&lt;&quot;,&quot;&lt;&lt;viewing_direction[1]&lt;&lt;&quot;,&quot;&lt;&lt;viewing_direction[2]&lt;&lt;&quot;\n&quot;;</span></div>
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;  </div>
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ac503c8e060a6f6b1cae1c1fa87fa6e33"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac503c8e060a6f6b1cae1c1fa87fa6e33">&#9670;&nbsp;</a></span>getTransformationToRangeImageSystem()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const Eigen::Affine3f&amp; pcl::RangeImage::getTransformationToRangeImageSystem </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Getter for the transformation from the world system into the range image system (the sensor coordinate frame) </p>
<div class="fragment"><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;{ <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_range_image.html#ada8177479f0e95999a66294db4c0c3eb">to_range_image_system_</a>); }</div>
</div><!-- fragment -->
</div>
</div>
<a id="afdff6ffbb3bfec294637225b5fb82956"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afdff6ffbb3bfec294637225b5fb82956">&#9670;&nbsp;</a></span>getTransformationToWorldSystem()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const Eigen::Affine3f&amp; pcl::RangeImage::getTransformationToWorldSystem </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Getter for the transformation from the range image system (the sensor coordinate frame) into the world system </p>
<div class="fragment"><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_range_image.html#a31c36f147403c0f64e1c3a386b30e229">to_world_system_</a>;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a32dfa3c681a50aebc74ae6830767a831"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32dfa3c681a50aebc74ae6830767a831">&#9670;&nbsp;</a></span>getViewingDirection() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::getViewingDirection </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>viewing_direction</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the viewing direction for the given point </p>
<div class="fragment"><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;{</div>
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;  viewing_direction = (point-<a class="code" href="classpcl_1_1_range_image.html#a942d6b253c5df68008614af6dfed323a">getSensorPos</a> ()).normalized ();</div>
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad37bc4a8aab3d63ee7c9ef9428239f00"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad37bc4a8aab3d63ee7c9ef9428239f00">&#9670;&nbsp;</a></span>getViewingDirection() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::RangeImage::getViewingDirection </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>viewing_direction</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the viewing direction for the given point </p>
<div class="fragment"><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;{</div>
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_range_image.html#a2372989721c3c119bb5d4b5ebd9b59c3">isValid</a> (x, y))</div>
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;  viewing_direction = (<a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x,y).getVector3fMap ()-<a class="code" href="classpcl_1_1_range_image.html#a942d6b253c5df68008614af6dfed323a">getSensorPos</a> ()).normalized ();</div>
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a824a6bb27b43a174da775a656b81a483"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a824a6bb27b43a174da775a656b81a483">&#9670;&nbsp;</a></span>isInImage()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::RangeImage::isInImage </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Check if a point is inside of the image </p>
<div class="fragment"><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;{</div>
<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;  <span class="keywordflow">return</span> (x &gt;= 0 &amp;&amp; x &lt; <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (<a class="code" href="classpcl_1_1_point_cloud.html#a2185a6453f8ad905d7bdf7b45754a160">width</a>) &amp;&amp; y &gt;= 0 &amp;&amp; y &lt; <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (<a class="code" href="classpcl_1_1_point_cloud.html#a4f34b45220c57f96607513ffad0d9582">height</a>));</div>
<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a771ab2f1ee2952a319da20301b27ab3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a771ab2f1ee2952a319da20301b27ab3b">&#9670;&nbsp;</a></span>isMaxRange()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::RangeImage::isMaxRange </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Check if a point is a max range (range=INFINITY) - please check isInImage or isObserved first! </p>
<div class="fragment"><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;{</div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;  <span class="keywordtype">float</span> range = <a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x,y).range;</div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;  <span class="keywordflow">return</span> pcl_isinf (range) &amp;&amp; range&gt;0.0f;</div>
<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a75e51885e151759d815ec1b1b72ea4ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75e51885e151759d815ec1b1b72ea4ff">&#9670;&nbsp;</a></span>isObserved()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::RangeImage::isObserved </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Check if a point is inside of the image and has either a finite range or a max reading (range=INFINITY) </p>
<div class="fragment"><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;{</div>
<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_range_image.html#a824a6bb27b43a174da775a656b81a483">isInImage</a> (x,y) || (pcl_isinf (<a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x,y).range)&amp;&amp;<a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x,y).range&lt;0.0f))</div>
<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad353c062c9b17adda3797bf970b9934b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad353c062c9b17adda3797bf970b9934b">&#9670;&nbsp;</a></span>isValid() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::RangeImage::isValid </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Check if a point has a finite range </p>
<div class="fragment"><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;{</div>
<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;  <span class="keywordflow">return</span> pcl_isfinite (<a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (index).range);</div>
<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a2372989721c3c119bb5d4b5ebd9b59c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2372989721c3c119bb5d4b5ebd9b59c3">&#9670;&nbsp;</a></span>isValid() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::RangeImage::isValid </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Check if a point is inside of the image and has a finite range </p>
<div class="fragment"><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;{</div>
<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_range_image.html#a824a6bb27b43a174da775a656b81a483">isInImage</a> (x,y) &amp;&amp; pcl_isfinite (<a class="code" href="classpcl_1_1_range_image.html#a52164736793c99cc9fc48dedee615e45">getPoint</a> (x,y).range);</div>
<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a86174b766aa77898e0d49ef11f4613b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86174b766aa77898e0d49ef11f4613b1">&#9670;&nbsp;</a></span>real2DToInt2D()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::real2DToInt2D </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>xInt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>yInt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Transforms an image point in float values to an image point in int values </p>
<div class="fragment"><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;{</div>
<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;  xInt = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (pcl_lrintf (x)); </div>
<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;  yInt = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (pcl_lrintf (y));</div>
<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a08d6ccfef80c3788102327df618a3fbf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a08d6ccfef80c3788102327df618a3fbf">&#9670;&nbsp;</a></span>recalculate3DPointPositions()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PCL_EXPORTS void pcl::RangeImage::recalculate3DPointPositions </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Recalculate all 3D point positions according to their pixel position and range </p>

</div>
</div>
<a id="a2720450161caef9a2992b0ac943ab2b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2720450161caef9a2992b0ac943ab2b7">&#9670;&nbsp;</a></span>setAngularResolution() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::setAngularResolution </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angular_resolution</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the angular resolution of the range image </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">angular_resolution</td><td>the new angular resolution in x and y direction (in radians per pixel) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;{</div>
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#abdbfb655cdfeb5d8ace1ac841a52a524">angular_resolution_x_</a> = <a class="code" href="classpcl_1_1_range_image.html#a9471a00ecde65c754227e155cc234942">angular_resolution_y_</a> = angular_resolution;</div>
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#adbb1466576e6c2d08e3065b67da0b250">angular_resolution_x_reciprocal_</a> = <a class="code" href="classpcl_1_1_range_image.html#a843659230146a43690ee4d4fb53fcc92">angular_resolution_y_reciprocal_</a> = 1.0f / angular_resolution;</div>
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a74583440e4ef4b611b7d2b638c6da28e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74583440e4ef4b611b7d2b638c6da28e">&#9670;&nbsp;</a></span>setAngularResolution() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::setAngularResolution </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angular_resolution_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angular_resolution_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the angular resolution of the range image </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">angular_resolution_x</td><td>the new angular resolution in x direction (in radians per pixel) </td></tr>
    <tr><td class="paramname">angular_resolution_y</td><td>the new angular resolution in y direction (in radians per pixel) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;{</div>
<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#abdbfb655cdfeb5d8ace1ac841a52a524">angular_resolution_x_</a> = angular_resolution_x;</div>
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#adbb1466576e6c2d08e3065b67da0b250">angular_resolution_x_reciprocal_</a> = 1.0f / <a class="code" href="classpcl_1_1_range_image.html#abdbfb655cdfeb5d8ace1ac841a52a524">angular_resolution_x_</a>;</div>
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a9471a00ecde65c754227e155cc234942">angular_resolution_y_</a> = angular_resolution_y;</div>
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a843659230146a43690ee4d4fb53fcc92">angular_resolution_y_reciprocal_</a> = 1.0f / <a class="code" href="classpcl_1_1_range_image.html#a9471a00ecde65c754227e155cc234942">angular_resolution_y_</a>;</div>
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ab0419b66dd9e76fbc6d568049abfad3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0419b66dd9e76fbc6d568049abfad3c">&#9670;&nbsp;</a></span>setTransformationToRangeImageSystem()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::RangeImage::setTransformationToRangeImageSystem </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>to_range_image_system</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Setter for the transformation from the range image system (the sensor coordinate frame) into the world system </p>
<div class="fragment"><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;{</div>
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#ada8177479f0e95999a66294db4c0c3eb">to_range_image_system_</a> = to_range_image_system;</div>
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;  <a class="code" href="classpcl_1_1_range_image.html#a31c36f147403c0f64e1c3a386b30e229">to_world_system_</a> = <a class="code" href="classpcl_1_1_range_image.html#ada8177479f0e95999a66294db4c0c3eb">to_range_image_system_</a>.inverse ();</div>
<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad4f7d854c4f15ab0ab2193cc726c353f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad4f7d854c4f15ab0ab2193cc726c353f">&#9670;&nbsp;</a></span>setUnseenToMaxRange()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PCL_EXPORTS void pcl::RangeImage::setUnseenToMaxRange </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Sets all -INFINITY values to INFINITY </p>

</div>
</div>
<h2 class="groupheader">类成员变量说明</h2>
<a id="abdbfb655cdfeb5d8ace1ac841a52a524"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abdbfb655cdfeb5d8ace1ac841a52a524">&#9670;&nbsp;</a></span>angular_resolution_x_</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::angular_resolution_x_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Angular resolution of the range image in x direction in radians per pixel </p>

</div>
</div>
<a id="adbb1466576e6c2d08e3065b67da0b250"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adbb1466576e6c2d08e3065b67da0b250">&#9670;&nbsp;</a></span>angular_resolution_x_reciprocal_</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::angular_resolution_x_reciprocal_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>1.0/angular_resolution_x_ - provided for better performace of multiplication compared to division </p>

</div>
</div>
<a id="a9471a00ecde65c754227e155cc234942"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9471a00ecde65c754227e155cc234942">&#9670;&nbsp;</a></span>angular_resolution_y_</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::angular_resolution_y_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Angular resolution of the range image in y direction in radians per pixel </p>

</div>
</div>
<a id="a843659230146a43690ee4d4fb53fcc92"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a843659230146a43690ee4d4fb53fcc92">&#9670;&nbsp;</a></span>angular_resolution_y_reciprocal_</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float pcl::RangeImage::angular_resolution_y_reciprocal_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>1.0/angular_resolution_y_ - provided for better performace of multiplication compared to division </p>

</div>
</div>
<a id="a1bd552e2971d69843fdec72413823f57"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1bd552e2971d69843fdec72413823f57">&#9670;&nbsp;</a></span>debug</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::RangeImage::debug</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Just for... well... debugging purposes. :-) </p>

</div>
</div>
<a id="a1518af9f1c9eb6ac259be92824842e23"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1518af9f1c9eb6ac259be92824842e23">&#9670;&nbsp;</a></span>image_offset_y_</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int pcl::RangeImage::image_offset_y_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Position of the top left corner of the range image compared to an image of full size (360x180 degrees) </p>

</div>
</div>
<a id="a34fe4f6701548e2514ae45099309cac4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34fe4f6701548e2514ae45099309cac4">&#9670;&nbsp;</a></span>max_no_of_threads</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int pcl::RangeImage::max_no_of_threads</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The maximum number of openmp threads that can be used in this class </p>

</div>
</div>
<a id="ada8177479f0e95999a66294db4c0c3eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada8177479f0e95999a66294db4c0c3eb">&#9670;&nbsp;</a></span>to_range_image_system_</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Eigen::Affine3f pcl::RangeImage::to_range_image_system_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Inverse of to_world_system_ </p>

</div>
</div>
<a id="a31c36f147403c0f64e1c3a386b30e229"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a31c36f147403c0f64e1c3a386b30e229">&#9670;&nbsp;</a></span>to_world_system_</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Eigen::Affine3f pcl::RangeImage::to_world_system_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Inverse of to_range_image_system_ </p>

</div>
</div>
<a id="a51bf019906a3256038561354d6b95885"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51bf019906a3256038561354d6b95885">&#9670;&nbsp;</a></span>unobserved_point</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structpcl_1_1_point_with_range.html">PointWithRange</a> pcl::RangeImage::unobserved_point</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This point is used to be able to return a reference to a non-existing point </p>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>common/include/pcl/range_image/<a class="el" href="range__image_8h_source.html">range_image.h</a></li>
<li>common/include/pcl/range_image/impl/<a class="el" href="range__image_8hpp_source.html">range_image.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><a class="el" href="classpcl_1_1_range_image.html">RangeImage</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
